Affichage d'un gros float

imen -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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