2004-05-30 Michael Koch <konqueror@gmx.de>
authorMichael Koch <konqueror@gmx.de>
Sun, 30 May 2004 13:42:24 +0000 (13:42 +0000)
committerMichael Koch <mkoch@gcc.gnu.org>
Sun, 30 May 2004 13:42:24 +0000 (13:42 +0000)
* java/text/DecimalFormat.java
(parse): Fixed parsing of decimal strings. Number of maximum
digits to be read should now work.
* java/text/SimpleDateFormat.java
(SimpleDateFormat): Set maximumFractionDigit to 0 for the number
formatter. This fixes DateFormatTest.

From-SVN: r82449

libjava/ChangeLog
libjava/java/text/DecimalFormat.java
libjava/java/text/SimpleDateFormat.java

index b567876a63af9d5b3321e65c7732ba44501ac862..12498406a09ee87974590d8bd4456a908634995c 100644 (file)
@@ -1,3 +1,12 @@
+2004-05-30  Michael Koch  <konqueror@gmx.de>
+
+       * java/text/DecimalFormat.java
+       (parse): Fixed parsing of decimal strings. Number of maximum
+       digits to be read should now work.
+       * java/text/SimpleDateFormat.java
+       (SimpleDateFormat): Set maximumFractionDigit to 0 for the number
+       formatter. This fixes DateFormatTest.
+
 2004-05-30  Michael Koch  <konqueror@gmx.de>
 
        * java/nio/Buffer.java
index 497a705670c4227e07309a73c255f3a836c50c3d..eda4d0437401b77d0ff775bea928ad6b1b9e9407 100644 (file)
@@ -42,13 +42,11 @@ import gnu.java.text.FormatBuffer;
 import gnu.java.text.FormatCharacterIterator;
 import gnu.java.text.StringFormatBuffer;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
 import java.util.Currency;
 import java.util.HashMap;
 import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.io.ObjectInputStream;
-import java.io.IOException;
 
 /**
  * @author Tom Tromey <tromey@cygnus.com>
@@ -849,7 +847,7 @@ public class DecimalFormat extends NumberFormat
     // FIXME: handle Inf and NaN.
 
     // FIXME: do we have to respect minimum digits?
-    // What about leading zeros?  What about multiplier?
+    // What about multiplier?
 
     StringBuffer buf = int_buf;
     StringBuffer frac_buf = null;
@@ -857,7 +855,13 @@ public class DecimalFormat extends NumberFormat
     int start_index = index;
     int max = str.length();
     int exp_index = -1;
-    int last = index + MAXIMUM_INTEGER_DIGITS;
+    int last = index + maximumIntegerDigits; 
+
+    if (maximumFractionDigits > 0)
+      last += maximumFractionDigits + 1;
+    
+    if (useExponentialNotation)
+      last += minExponentDigits + 1;
 
     if (last > 0 && max > last)
       max = last;
index 5f3614eefcf287a51d287c32e9466b9a081d90c7..ea3e09fab46268f7052303b47abf3e2c7648e173 100644 (file)
@@ -189,6 +189,7 @@ public class SimpleDateFormat extends DateFormat
     numberFormat = NumberFormat.getInstance(locale);
     numberFormat.setGroupingUsed (false);
     numberFormat.setParseIntegerOnly (true);
+    numberFormat.setMaximumFractionDigits (0);
   }
   
   /**
@@ -216,6 +217,7 @@ public class SimpleDateFormat extends DateFormat
     numberFormat = NumberFormat.getInstance(locale);
     numberFormat.setGroupingUsed (false);
     numberFormat.setParseIntegerOnly (true);
+    numberFormat.setMaximumFractionDigits (0);
   }
 
   /**
@@ -234,6 +236,7 @@ public class SimpleDateFormat extends DateFormat
     numberFormat = NumberFormat.getInstance();
     numberFormat.setGroupingUsed (false);
     numberFormat.setParseIntegerOnly (true);
+    numberFormat.setMaximumFractionDigits (0);
   }
 
   // What is the difference between localized and unlocalized?  The