Fix and reenable DecimalFormatTest

The problems underlying the suppressed DecimalFormatTest test cases have
been fixed, but the test had a separate bug where it appropriately
truncated the output for formatting a very large number but didn't scale
it properly, so the test was still failing.

Also fix the bug reference for a different text-formatting suppression.

Bug: 17656132
Test: vogar ... org.apache.harmony.tests.java.text.DecimalFormatTest
Test: cts run -m CtsLibcoreTestCases -t org.apache.harmony.tests.java.text.DecimalFormatTest
Change-Id: I85266515e6645627f5aa9200c0d1de41f9ac9cc0
diff --git a/expectations/knownfailures.txt b/expectations/knownfailures.txt
index a5764f5..8512d95 100644
--- a/expectations/knownfailures.txt
+++ b/expectations/knownfailures.txt
@@ -1413,14 +1413,6 @@
   ]
 },
 {
-  description: "Known precision issue in DecimalFormat",
-  bug: 17656132,
-  names: [
-    "org.apache.harmony.tests.java.text.DecimalFormatTest#test_formatDouble_bug17656132",
-    "org.apache.harmony.tests.java.text.DecimalFormatTest#test_formatDouble_roundingProblemCases"
-  ]
-},
-{
   description: "Known failure in GregorianCalendarTest",
   bug: 12778197,
   name: "org.apache.harmony.tests.java.util.GregorianCalendarTest#test_computeTime"
@@ -1435,7 +1427,7 @@
 },
 {
   description: "libcore.java.text.DecimalFormatSymbolsTest#test_getInstance_unknown_or_invalid_locale assumes fallback to locale other than en_US_POSIX.",
-  bug: 17374604,
+  bug: 17422813,
   names: [
     "libcore.java.text.DecimalFormatSymbolsTest#test_getInstance_unknown_or_invalid_locale"
   ]
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/DecimalFormatTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/DecimalFormatTest.java
index 902caef..29470d1 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/DecimalFormatTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/DecimalFormatTest.java
@@ -1699,7 +1699,7 @@
         // double 9999999999.999998 is decimal 9999999999.9999980926513671875
         assertEquals("9999999999.999998", df.format(9999999999.999998));
         // double 1E23 is decimal 99999999999999991611392
-        assertEquals("9999999999999999", df.format(1E23));
+        assertEquals("99999999999999990000000", df.format(1E23));
     }
 
     public void test_getDecimalFormatSymbols() {