| Index: base/i18n/number_formatting.cc
|
| diff --git a/base/i18n/number_formatting.cc b/base/i18n/number_formatting.cc
|
| index a529a84651b9e646261ccfb9a90db5a3115d6b66..986f1ed1f6331b9b607a6fc11115e7c7cba6ea72 100644
|
| --- a/base/i18n/number_formatting.cc
|
| +++ b/base/i18n/number_formatting.cc
|
| @@ -34,10 +34,15 @@ struct NumberFormatWrapper {
|
|
|
| } // namespace
|
|
|
| -static LazyInstance<NumberFormatWrapper> g_number_format(LINKER_INITIALIZED);
|
| +static
|
| +LazyInstance<NumberFormatWrapper> g_number_format_int(LINKER_INITIALIZED);
|
| +
|
| +static
|
| +LazyInstance<NumberFormatWrapper> g_number_format_float(LINKER_INITIALIZED);
|
|
|
| string16 FormatNumber(int64 number) {
|
| - icu::NumberFormat* number_format = g_number_format.Get().number_format.get();
|
| + icu::NumberFormat* number_format =
|
| + g_number_format_int.Get().number_format.get();
|
|
|
| if (!number_format) {
|
| // As a fallback, just return the raw number in a string.
|
| @@ -49,4 +54,20 @@ string16 FormatNumber(int64 number) {
|
| return string16(ustr.getBuffer(), static_cast<size_t>(ustr.length()));
|
| }
|
|
|
| +string16 FormatDouble(double number, int fractional_digits) {
|
| + icu::NumberFormat* number_format =
|
| + g_number_format_float.Get().number_format.get();
|
| +
|
| + if (!number_format) {
|
| + // As a fallback, just return the raw number in a string.
|
| + return UTF8ToUTF16(StringPrintf("%f", number));
|
| + }
|
| + number_format->setMaximumFractionDigits(fractional_digits);
|
| + number_format->setMinimumFractionDigits(fractional_digits);
|
| + icu::UnicodeString ustr;
|
| + number_format->format(number, ustr);
|
| +
|
| + return string16(ustr.getBuffer(), static_cast<size_t>(ustr.length()));
|
| +}
|
| +
|
| } // namespace base
|
|
|