didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 2017
-
27 janv. 2007 à 16:42
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 2017
-
27 janv. 2007 à 18:06
Bonjour a tous.
je ne sais pas comment est ce que cela ce fait mais mes nombres ne sont jamais "ronds". par exemple, lorsque je fais 13 * 47.9 au lieu d'obtenir 222.7, j'obtien 222.99...
Comment regler ce "pb" ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 27 janv. 2007 à 17:00
Bah déjà, 13 * 47.9 = 622.7 et non 222.7...
Sinon, 13 * 47.9 = 622.6999999999999 sous java et non 222.99 comme tu le dit...
Bref, cela problème est bien connu en informatique, il s'agit du problème du complèment à 2 : en binaire, on ne peux pas représenter tout les réels, du coup, les machines sont obligées de les arrondir au mieux (sinon, il faudrait une mémoire infinie pour pouvoir stocker un réel à sa juste valeur !).
Pour ce genre de problème, tu peux utiliser un SimpleNumberFormat qui t'arrondira au nombre de décimale que tu veux afin d'obtenir la précision voulue...