Problemes avec NumberFormat

schub1015 Messages postés 32 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 10 juillet 2007 - 10 juil. 2007 à 17:46
theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 - 13 juil. 2007 à 11:58
bonjour à tous,

je développe sous Java 1.1.8 (je sais c vieux mais l'architecture du projet est telle quelle )

Je voudrais formatter une saisie d'utilisateur pour etre sur que celui-ci a saisi un float.

Voici mon code :

String writtenText; // texte saisi par l'utilisateur
float valTxtSaisi; // flottant de sortie
NumberFormat numberFormat = NumberFormat.getInstance(Locale.ENGLISH);
valTxtSaisi = numberFormat.parse(writtentext).floatValue();

J'ai un problème car si WrittenText = "12345678", ca fonctionne bien
si WrittenText = "123456789", je passe en écriture scientifique avec un arrondi 1.2345678E7

Quelqu'un a une idée pour toujours avoir le float dans une écriture non scientifique ?

Merci pour vos réponses.

1 réponse

theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 35
13 juil. 2007 à 11:58
Bonjour,

Que cherches tu à faire exactement ? Si tu cherches à transformer une chaine de caractères en floattant, tu n'as pas choisi la bonne solution. NumberFormat est fait pour faire l'inverse, transformer un "nombre" en String, selon les "règles" d'un pays.

Ce code devrait marcher :

String writtenText = "123,456";
writtenText.replace(",", "."); //On remplace les virgules par des points

float valTxtSaisi = 0.0;

try {
  valTxtSaisi = Float.parseFloat(writtenText);
}
catch(Exception e) {
  System.out.println("C'etait pas un float ...");
}
0
Rejoignez-nous