From: Mark Davis Date: Fri, 2 Mar 2012 05:12:50 +0000 (+0000) Subject: ICU-8460 Fixed bug with formatting 0. X-Git-Tag: milestone-59-0-1~3932 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4f9f1f602cfbffb498beed117772228e803cb2d4;p=icu ICU-8460 Fixed bug with formatting 0. X-SVN-Rev: 31568 --- diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/CompactDecimalFormat.java b/icu4j/main/classes/core/src/com/ibm/icu/text/CompactDecimalFormat.java index b53d205b41e..1e25cd21da6 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/text/CompactDecimalFormat.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/text/CompactDecimalFormat.java @@ -174,7 +174,7 @@ public class CompactDecimalFormat extends DecimalFormat { if (number < 0.0d) { throw new UnsupportedOperationException("CompactDecimalFormat doesn't handle negative numbers yet."); } - int integerCount = (int) Math.log10(number); + int integerCount = number <= 1.0d ? 0 : (int) Math.log10(number); int base = integerCount > 14 ? 14 : integerCount; number = number / divisor[base]; setPositivePrefix(prefix[base]); diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/CompactDecimalFormatTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/CompactDecimalFormatTest.java index 5e7818b7431..f35e0bc307e 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/CompactDecimalFormatTest.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/CompactDecimalFormatTest.java @@ -20,6 +20,9 @@ public class CompactDecimalFormatTest extends TestFmwk { Object[][] EnglishTestData = { // default is 2 digits of accuracy + {0.0d, "0.0"}, + {0.1d, "0.1"}, + {1d, "1"}, {1234, "1.2K"}, {12345, "12K"}, {123456, "120K"}, @@ -32,6 +35,7 @@ public class CompactDecimalFormatTest extends TestFmwk { {1234567890123f, "1.2T"}, {12345678901234f, "12T"}, {123456789012345f, "120T"}, + {12345678901234567890f, "12000000T"}, }; Object[][] JapaneseTestData = {