Bonjour,
J'ai un problème dans une multiplication de 2 doubles en Java. Il ne me calcul pas le bon résultat :
Renvoie : 793.8449999999999 au lieu de 793.845
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 double d1 = 663.75; double d2 = 1.196; System.out.println(d1*d2);
Renvoie : 793.844999999999968165464991898261359892785549163818359375
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 java.math.BigDecimal bg = new java.math.BigDecimal(663.75d); java.math.BigDecimal bg2 = new java.math.BigDecimal(1.196d); System.out.println(bg.multiply(bg2));
Pourquoi cela, et comment avoir un bon chiffre ? J'ai pensé à ajouter 0.0000001 mais je trouve cela bizarre qu'il ne soit pas capable de calculer juste au dela de 3 pauvres décimales.
Environnement : Windows, JDK 1.5.0_15, TomCat 5.5
Merci pour votre aide.
Partager