Pb calcul avec java

Résolu
theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 - 9 avril 2006 à 17:20
theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 - 9 avril 2006 à 18:55
Bonjour, j'ai un problème :

Pourquoi le code suivant me renvoi des résultats bizard ?

class Test
{
public static void main(String [] args)
{
System.out.println(1 * 845.99);
System.out.println(2 * 845.99);
System.out.println(3 * 845.99);
System.out.println(4 * 845.99);
System.out.println(5 * 845.99);
System.out.println(6 * 845.99);
System.out.println(7 * 845.99);
System.out.println(8 * 845.99);
}
}

Résultats :

845.99
1691.98
2537.9700000000003
3383.96
4229.95
5075.9400000000005
5921.93
6767.92

Merci.

4 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
9 avril 2006 à 18:27
Fromat ta sortie NumberFormat :
http://java.sun.com/j2se/1.5.0/docs/api/java/text/NumberFormat.html

Ca devrait aller ;-)

++
3
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
9 avril 2006 à 17:28
Parce qu'il t'affiche le résultat en temps que chiffre à virguel floattante (double pour être précis ici) ce qui n'a rien d'étrange ...

Si tu veux formater ta sorti il va te falloir utiliser des Formater pour ça .. ;-) ou alors le printf avec Java 5 ce qui revient au même

++
0
theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 35
9 avril 2006 à 18:22
Merci de m'avoir répondu, mais je ne comprend toujours pas pourquoi

3*845.99 = 2537.9700000000003
au lieu de 2537.97

Mon probleme n'est pas tellement l'affichage mais bien la valeur calculé. Je fait ce simple programme en java pour vérifier si j'avais le même résultat que dans ma page JSP. Il s'agit du calcul du total d'un "panier" (quantité * prix = ...).
0
theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 35
9 avril 2006 à 18:55
Merci beaucoup.
0
Rejoignez-nous