Transformer la virgule par un point dans un double

Résolu/Fermé
Adriang19 Messages postés 29 Date d'inscription mercredi 14 août 2013 Statut Membre Dernière intervention 12 juillet 2018 - Modifié le 26 juin 2018 à 19:49
Adriang19 Messages postés 29 Date d'inscription mercredi 14 août 2013 Statut Membre Dernière intervention 12 juillet 2018 - 4 juil. 2018 à 13:06
Bonjour,
Je début en java, et je galère sur un problème qui semble simple. Je souhaite transformer la virgule d'un double, par un point mais sans perdre de valeur: en effet j'ai réussi avec la fonction "replace", mais lorsque le nombre contient des zéros derrière la virgule, ceux-ci disparaissent. Je souhaite également garder un nombre avec 4 chiffres après la virgule (ou le point). Voici mon code:

double d=24.0000000;
DecimalFormat df = new DecimalFormat("#0.0000");
String dformaté=df.format(d);
System.out.println(dformaté);

String dformaté2 = dformaté.replace(",","." );
double dd=Double.parseDouble(dformaté2);
System.out.println(dd);

En sortie j'obtient:
24,0000
24.0

Je souhaiterai obtenir: 24.0000

Une solution?
Merci d'avance :)

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 juin 2018 à 20:13
Bonjour,

C'est un problème d'internationalisation, Java voit que ton ordinateur est en français, donc il fait la conversion avec le séparateur décimal français (la virgule), si tu veux un point, il faut passer en langue anglaise.

Exemple pour DecimalFormat :
df.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ENGLISH));

Remarque : DecimalFormat n'est pas vraiment utile ici, on peut directement utiliser la classe String.
double d = 24.0000000;
String s = String.format(Locale.ENGLISH, "%.4f", d);
System.out.println(s); // 24.0000
double dd = Double.parseDouble(s);
System.out.println(dd); // 24.0
1
Adriang19 Messages postés 29 Date d'inscription mercredi 14 août 2013 Statut Membre Dernière intervention 12 juillet 2018
4 juil. 2018 à 13:06
Merci beaucoup!!! :)
0