Philou1789
Messages postés1Date d'inscriptionvendredi 4 octobre 2002StatutMembreDernière intervention29 mai 2006
-
29 mai 2006 à 23:27
cs_nimatik
Messages postés10Date d'inscriptionsamedi 25 mars 2006StatutMembreDernière intervention 5 juin 2006
-
4 juin 2006 à 20:25
Au secours je ne m'en sors pas Java ne sais pas calculer ou quoi !!!
cs_bouba
Messages postés518Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 novembre 20073 30 mai 2006 à 00:57
Salut, ce problème ne vient pas de Java, ce comportement a lieu avec n'importe quel langage, il vient des méthodes de calcul utilisées par les CPU sur les nombres flottants.
Par exemple en C on obtient:
#include <stdio.h>
int main() {
double a,b,c;
a = 53.2;
b = 84.4;
c = a + b;
printf("%.30f", c);
}
A l'exécution le même problème qu'en Java (d'ailleur ce n'est pas un problème)
bouba@debian:~/tmp/test$ ./main2
137.600000000000022737367544323206
bouba@debian:~/tmp/test$
La seule solution que tu as c'est de perdre un peu de précision.
C *= 100000;
C = ((int)C)/1000000.;