Affichage d'un gros float

Signaler
-
Messages postés
16308
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 avril 2021
-
Bonjour, j'ai un fichier qui contient un string et je veux le convertir en float faire un traitement puis le reconvertir en String et retourner le String
Mon fichier contient le montant suivant: 16092211,57
je le lis puis je le convertis en float


float f;
String resultat;

f = Float.parseFloat(ma_variable_qui_contient_le_gros_montant_recupere_du_fichier)

resultat = String.valueOf(f);
System.out.println(resultat);

le résultat que j'ai est 1,609221157E7 or je veux pas ce résultat, je veux avoir un résultat comme ça : 16092211,57

Merci pour votre aide

1 réponse

Messages postés
16308
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 avril 2021
2 822
Bonjour,

Le problème est dans la conversion du
float
en
String
, par défaut Java considère la notation scientifique.
Tu peux faire comme ceci :
resultat = String.format("%f", f);


Remarque :
float
, et dans une moindre mesure
double
, sont des types de données limités en amplitude : plus tu auras de grandes valeurs, moins la précision sera importante.
C'est pour ça que la notation scientifique a plus de sens pour ces types de données.
De plus, la donnée étant stockée en binaire, il peut y avoir des arrondis en binaire qui sont difficilement compréhensibles une fois affichés en décimal.
Si tu as besoin de faire des calculs exacts en décimal tu devrais plutôt considérer la classe
BigDecimal
.