Sto aggiornando da JDK6 to JDK7. Il codice seguente dimostra mostra una piccola modifica nel Double.toString()
Java7 Double.toString() restituisce 0,005/java6 è 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
Cerco qualsiasi documentazione relativa al cambiamento di cui sopra. La pagina di compatibilità non lo copre.
5.0E-4
0.005 //changed.
0.05
0.5
L'output è stato salvato in molte file di riferimento, e rispetto da stringa comparison- ho bisogno di fissare il confronto, ma curioso di conoscere maggiori dettagli su questo cambiamento. Risposta autorevole sul motivo per cui questo cambiamento diventerà generoso.
Un altro galleggiante parsing bug in Java che causerebbe il compilatore per andare in un ciclo infinito era un po 'più interessante, però. http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/ – devnull