parseFloat() vs parseDouble()

Je suis en train d'essayer le code ci-dessous pour convertir la chaîne de float et double, mais obtenir des résultats différents.

Code:

 System.out.println(Float.parseFloat("120059389"));
 System.out.println(Double.parseDouble("120059389"));

De sortie:

1.20059392E8
1.20059389E8

Quelqu'un pourrait m'expliquer pourquoi j'ai obtenu des résultats différents pour l'analyse de la chaîne en float et double? Quelles sont les plages pour les float et double?

Cela aidera à:docs.oracle.com/javase/tutorial/java/nutsandbolts/...
Obligatoire: docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
Google "en virgule flottante IEEE". Il y a un article de Wikipédia qui explique tout, et n'est pas trop dense.

OriginalL'auteur vikifor | 2014-04-09