2013-04-04 6 views
23

Ich aktualisiere von JDK6 to JDK7. Der folgende Code zeigt eine geringfügige Änderung in Double.toString()Java7 Double.toString() gibt 0.005/java6 zurück es ist 0.0050

public class StringDemo 
{ 

    public static void main(String[] args) 
    { 
     System.out.println(Double.toString(.0005)); 
     System.out.println(Double.toString(.005)); //different string 
     System.out.println(Double.toString(.05)); 
     System.out.println(Double.toString(.5)); 
    } 
} 

JRE6

5.0E-4 
0.0050 
0.05 
0.5 

JRE7

ich für jede Dokumentation Suche nach oben Änderung. Die Kompatibilitätsseite deckt es nicht ab.

5.0E-4 
0.005 //changed. 
0.05 
0.5 

Die Ausgabe wurde in vielen Referenzdateien gespeichert und verglichen mit String comparison- ich den Vergleich reparieren muß, aber neugierig weitere Informationen über diese Änderung zu kennen. Autoritäre Antwort auf, warum diese Änderung Kopfgeld erhält.

+3

Ein weiterer Schwimmer Parsen Fehler in Java, die dazu führen würde, Der Compiler, der in eine Endlosschleife ging, war etwas interessanter. http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/ – devnull

Antwort

28

Dies war ein Fehler in Java 1.3 bis 1.6 (gelöst in 1.7).

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4511638 Der Fehlerbericht http://bugs.sun.com/view_bug.do?bug_id=4428022 enthält weitere Details. In JDK 7 behoben (b75).

Ähnliche Berichte - Zitat aus dem obigen Link.

  • Backport: JDK-2.181.423 - System.out.printin (0,001) Ausgänge 0,0010
  • Duplizieren: JDK-5.078.240 - Double.toString (double) fügt eine nachlauf Null in bestimmten Fällen
  • Duplizieren: JDK-6575880 - Float.toString (float) fügt Hinter Nullen
  • Verwandt: JDK-6935102 - Regtest
    geschlossen/sun/misc/FloatingDecimal/ToString.java jetzt scheitern.
  • Verwandt: JDK-4154042 - java.lang.FloatingDecimal

Die Änderungen für OpenJDK 7 dieses Problem bei beheben sind verfügbar beseitigt werden könnten: http://hg.openjdk.java.net/jdk7/tl/jdk/rev/f85aa3aedf41

+0

Vielen Dank! Einfach toll. – Jayan

Verwandte Themen