X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/b331163bffd790ced0e88b73f44f86d49ccc48a5..ef6cf650f4a75c3f97de06b51fa104f2069b9ea2:/icuSources/i18n/msgfmt.cpp?ds=sidebyside diff --git a/icuSources/i18n/msgfmt.cpp b/icuSources/i18n/msgfmt.cpp index 32d9bc7d..1fe2c8d6 100644 --- a/icuSources/i18n/msgfmt.cpp +++ b/icuSources/i18n/msgfmt.cpp @@ -1,6 +1,6 @@ /******************************************************************** * COPYRIGHT: - * Copyright (c) 1997-2014, International Business Machines Corporation and + * Copyright (c) 1997-2015, International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************** * @@ -46,6 +46,7 @@ #include "ustrfmt.h" #include "util.h" #include "uvector.h" +#include "visibledigits.h" // ***************************************************************************** // class MessageFormat @@ -1955,8 +1956,12 @@ UnicodeString MessageFormat::PluralSelectorProvider::select(void *ctx, double nu context.formatter->format(context.number, context.numberString, ec); const DecimalFormat *decFmt = dynamic_cast(context.formatter); if(decFmt != NULL) { - FixedDecimal dec = decFmt->getFixedDecimal(context.number, ec); - return rules->select(dec); + VisibleDigitsWithExponent digits; + decFmt->initVisibleDigitsWithExponent(context.number, digits, ec); + if (U_FAILURE(ec)) { + return UnicodeString(FALSE, OTHER_STRING, 5); + } + return rules->select(digits); } else { return rules->select(number); }