Les float sont encodé sour la form X*2Y
X est la partie significative
Y est la partie exposant.
Ce qui fait que tu va forcement perdre en chiffre significatif su tu utilise ce format là.
Le mieux pour gérer ce genre de cas c'est l'objet BigDecimal ou un long (Si pas de valeur décimal) :
1 2 3
| System.out.println(Float.parseFloat("366002598620"));
System.out.println(Long.parseLong("366002598620"));
System.out.println(new BigDecimal("366002598620")); |
Envoyé par
resultat
3.66002602E11
366002598620
366002598620
Après, il faut savoir ce que prend ta base de donnée / JDBC en entrée.
Cordialement,
Patrick Kolodziejczyk.
Partager