Arrondissement des nombres [Résolu]

Messages postés
52
Date d'inscription
mardi 9 mars 2010
Dernière intervention
30 mars 2011
- 23 mai 2010 à 12:00 - Dernière réponse :
Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Dernière intervention
17 juillet 2010
- 23 mai 2010 à 20:43
Bonjour
comment transformer un nombre 15.3333333 en 15.33 en java(seulement avec 2 chiffres après la virgule)?
j'ai utilisé :
double mo = ((m1 * T1) + (m2 * T2) + (m3 * T3)) / (T1 + T2 + T3);
DecimalFormat df = new DecimalFormat("0.00");
String s = df.format(mo);
double mo1 = Double.parseDouble(s);
mais une erreur s'affiche : Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "15,33"

merci
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 23 mai 2010 à 12:56
3
Merci
Salut,

Y'a un truc que je comprends pas : tu parles de format de nombre (à 2 chiffres après la virgule), mais pourquoi tu veux le stocker dans un Double ? Un double stocke un nombre, c'est tout, il n'y a pas de notion de format.

C'est pourquoi faire que tu veux limiter à 2 chiffres après la virgules ? Si c'est pour l'afficher à l'écran, il vaut mieux conserver la String. Sinon, je ne vois pas trop l'intérêt de perdre de la précision sur ton double calculé.

Si vraiment tu veux le remettre dans un double :
double mo = ((m1 * T1) + (m2 * T2) + (m3 * T3)) / (T1 + T2 + T3);
DecimalFormat df = new DecimalFormat("0.00");
String s = df.format(mo);
double mo1 = Double.parseDouble(s.replaceAll(",", ".");

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 23 mai 2010 à 12:30
0
Merci
Salut,

Remplace la virgule par un point.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
52
Date d'inscription
mardi 9 mars 2010
Dernière intervention
30 mars 2011
- 23 mai 2010 à 12:40
0
Merci
mais ce nombre est calculé par l'équation en haut, comment faire?
il me dit que l'erreur est dans cette ligne : double mo1 = Double.parseDouble(s);
Commenter la réponse de cs_manou9
Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Dernière intervention
17 juillet 2010
- 23 mai 2010 à 20:43
0
Merci
Salut,
Si le but est juste de faire un arrondi sur ton double à ce moment là faut plutôt faire quelque chose comme :
double mo = ((m1 * T1) + (m2 * T2) + (m3 * T3)) / (T1 + T2 + T3);
double mo1 = (Math.round(mo * 100)) / 100;
Ca sera moins lourd.
Commenter la réponse de cs_Kysic

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.