Salut salut,

J'ai constaté un truc assez relou, les float, double, BigDecimal et certainement beaucoup d'autres sont parasités....

Testez chez vous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
float f = 0.0f;
 
for(int i = 0; i < 1001; i++) {
	System.out.println(i + " - " + f);
	f += 0.001f;
}
Voilà le résultat :

0 - 0.0
1 - 0.001
2 - 0.002
3 - 0.003
4 - 0.004
5 - 0.0050000004
6 - 0.0060000005
7 - 0.0070000007

8 - 0.008
9 - 0.009000001
10 - 0.010000001


...

474 - 0.47399744
475 - 0.47499743
476 - 0.47599742
477 - 0.4769974
478 - 0.4779974
479 - 0.47899738
480 - 0.47999737
481 - 0.48099735


...

990 - 0.98999083
991 - 0.9909908
992 - 0.9919908
993 - 0.9929908
994 - 0.9939908
995 - 0.99499077
996 - 0.99599075
997 - 0.99699074
998 - 0.9979907
999 - 0.9989907
1000 - 0.9999907
Évidement utiliser des chiffres pour avoir des résultats imprécis n'est pas trop intéressant... Quelqu'un a une solution pour conserver des résultat précis ?

En fait c'est += qui est du pipo...

Merci de votre aide.