Problem with DecimalFormat

cs_kibab Messages postés 13 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 15 juin 2006 - 8 mars 2006 à 13:50
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 - 8 mars 2006 à 17:17
Bonjour a vous tous.

Comme sue titre j´ai un problem acev la class DecimalFormat



Ceci ce le code tres simple:



import java.io.*;

import java.text.*;



public class jf2 {

public static double val;




public static void main (String args[]) {

String str = "10.000E+06";

System.out.println("Original string: str="+str);

DecimalFormat prova = new DecimalFormat();



val = prova.parse(str, (new ParsePosition(0))).doubleValue();;

System.out.println("DecimalFormat.parse() gives: val="+val);}

Double Val = new Double(str);

System.out.println("Double.doubleValue(): val=" + Val.doubleValue());

}



}



L´output ce

DecimalFormat.parse() gives: val= 1000.0 et

Double.doubleValue(): val= 1.0E+7 (ca ok).



Je voudrai obtenir 10000000 mais je n´arrive pas.



Merci, aideé moi .



kibab

2 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
8 mars 2006 à 17:16
Salut,

le numberformat se base sur la locale pour parser le nombre. En France, les décimales sont derrière une virgule. Le constructeur Double utilise la notation 'calculatrice' et prend donc le '.' comme séparateur.
Pour avoir ce que tu veux, il faut avoir un numberformat configuré pour qu'il prenne le '.' pour séparateur des décimales.
NumberFormat prova = NumberFormat.getInstance(Locale.US);

Si qqun a une meilleure explication, je suis preneur.
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
8 mars 2006 à 17:17
J'ai oublié un truc. Il semble que le numberformat n'aime pas la notation 'E+06' mais plutôt 'E06'.
0
Rejoignez-nous