aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/text
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2004-05-30 13:42:24 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2004-05-30 13:42:24 +0000
commit289f9db7db45a044bfc59831b56e25cb4aa2e7c8 (patch)
tree587f6c3511e8ed3079e8952d2d53c902bbaacd84 /libjava/java/text
parent1b2545bcf251668d695e8cbf9b9acfd4507eef61 (diff)
downloadgcc-289f9db7db45a044bfc59831b56e25cb4aa2e7c8.zip
gcc-289f9db7db45a044bfc59831b56e25cb4aa2e7c8.tar.gz
gcc-289f9db7db45a044bfc59831b56e25cb4aa2e7c8.tar.bz2
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. From-SVN: r82449
Diffstat (limited to 'libjava/java/text')
-rw-r--r--libjava/java/text/DecimalFormat.java16
-rw-r--r--libjava/java/text/SimpleDateFormat.java3
2 files changed, 13 insertions, 6 deletions
diff --git a/libjava/java/text/DecimalFormat.java b/libjava/java/text/DecimalFormat.java
index 497a705..eda4d04 100644
--- a/libjava/java/text/DecimalFormat.java
+++ b/libjava/java/text/DecimalFormat.java
@@ -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;
diff --git a/libjava/java/text/SimpleDateFormat.java b/libjava/java/text/SimpleDateFormat.java
index 5f3614e..ea3e09f 100644
--- a/libjava/java/text/SimpleDateFormat.java
+++ b/libjava/java/text/SimpleDateFormat.java
@@ -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