Ho un float primitivo e ho bisogno di un double primitivo. Il semplice lancio del galleggiante per raddoppiare mi dà una strana precisione extra. Per esempio:
float temp = 14009.35F;
System.out.println(Float.toString(temp)); // Prints 14009.35
System.out.println(Double.toString((double)temp)); // Prints 14009.349609375
Tuttavia, se invece di eseguire il casting, eseguo l'output del float come una stringa e analizzo la stringa come un double, ottengo quello che voglio:
System.out.println(Double.toString(Double.parseDouble(Float.toString(temp))));
// Prints 14009.35
C'è un modo migliore che andare a String e tornare indietro?