Affichage d'un gros float

Fermé
imen - 29 mars 2021 à 15:54
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 29 mars 2021 à 17:25
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

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
29 mars 2021 à 17:25
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
.
0