]> granicus.if.org Git - icu/commitdiff
ICU-8460 Fixed bug with formatting 0.
authorMark Davis <mark@macchiato.com>
Fri, 2 Mar 2012 05:12:50 +0000 (05:12 +0000)
committerMark Davis <mark@macchiato.com>
Fri, 2 Mar 2012 05:12:50 +0000 (05:12 +0000)
X-SVN-Rev: 31568

icu4j/main/classes/core/src/com/ibm/icu/text/CompactDecimalFormat.java
icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/CompactDecimalFormatTest.java

index b53d205b41efe4d1569f1e50a5eac2b3569401bb..1e25cd21da6014ff5df9e9037e3fab8e7005516a 100644 (file)
@@ -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]);
index 5e7818b7431aa1878d44c214767f88b892644bc0..f35e0bc307e071b385042e2332a3cf80975b2a03 100644 (file)
@@ -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 = {