Java7 Double.toString () gibt 0.005 / Java6 zurück, es ist 0.0050

Ich aktualisiere vonJDK6 bis JDK7. Der folgende Code zeigt eine geringfügige Änderung inDouble.toString()

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 suche Unterlagen zu den oben genannten Änderungen. Die Kompatibilitätsseite deckt dies nicht ab.

5.0E-4
0.005   //changed.
0.05
0.5

Die Ausgabe wurde in vielen Referenzdateien gespeichert und per Zeichenfolgenvergleich verglichen. Ich muss den Vergleich korrigieren, bin aber neugierig, weitere Details zu dieser Änderung zu erfahren. Maßgebliche Antwort auf die Frage, warum diese Änderung mit Kopfgeldern belegt wird.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage