- 
    Bug 
- 
    Resolution: Fixed
- 
     P4 P4
- 
    1.2.0
- 
        1.2.2
- 
        sparc
- 
        solaris_2.5
Name: dfC67450 Date: 09/02/98
java.text.DecimalFormat.parse(String text, ParsePosition pp) incorrectly parses
"-0.0" if setParseIntegerOnly(true) has been called previously. According to
javadoc output value of parse should be integer.
Javadoc about NumberFormat.setParseIntegerOnly:
"Sets whether or not numbers should be parsed as integers only."
This bug was introduced in JDK1.2-fcsH.
Here is the test demonstrating the bug:
-----------------Test.java------------------------
import java.text.*;
public class Test {
public static void main (String args[]){
DecimalFormat df = new DecimalFormat();
df.setParseIntegerOnly(true);
Number n = df.parse("-0.0", new ParsePosition(0));
if (n instanceof Double) {
System.out.println("Test failed");
System.out.println(" parse(\"-0.0\") returns " + n);
System.out.println(" should return integer value");
} else {
System.out.println("Test passed");
System.out.println(" parse(\"-0.0\") returns " + n);
}
}
}
---------Output from the test (JDK1.2-fcsH) ---------------------
Test failed
parse("-0.0") returns -0.0
should return integer value
---------Output from the test (JDK1.2-fcsG) ---------------------
Test passed
parse("-0.0") returns 0
--------------------------------------------------
======================================================================