Nombres inexactes

didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 - 27 janv. 2007 à 16:42
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Derniè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" ?

merci

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
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...
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
27 janv. 2007 à 18:06
ok.
desoler pour les erreurs.
merci.
0
Rejoignez-nous