Problème de multiplication et arrondis
Bonjour,
J'ai un problème dans une multiplication de 2 doubles en Java. Il ne me calcul pas le bon résultat :
Code:
1 2 3
| double d1 = 663.75;
double d2 = 1.196;
System.out.println(d1*d2); |
Renvoie : 793.8449999999999 au lieu de 793.845
Code:
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)); |
Renvoie : 793.844999999999968165464991898261359892785549163818359375
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.