Transformer la virgule par un point dans un double

Résolu
Adriang19 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
Adriang19 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -
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 :)
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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   Statut Membre Dernière intervention  
 
Merci beaucoup!!! :)
0