un indice
augmente la précision d'affichage dans ton printf (en mettant 10.10f par exemple), et tu verras que quand tu incrementes de 0.01, ça ne vaut pas "exactement" 0.01. C'est du à l'imprécision des nombres flottants. (voir http://fr.wikipedia.org/wiki/IEEE_754 )
ex de résultat :
Code :
- 0.0099999998
- 0.0199999996
- 0.0299999993
- 0.0399999991
- 0.0499999989
- 0.0599999987
- 0.0699999984
- 0.0799999982
- 0.0899999980
- 0.0999999978
- 0.1099999975
- 0.1199999973
- 0.1299999971
- 0.1399999969
- 0.1499999966
- 0.1599999964
- 0.1699999962
- 0.1799999960
- 0.1899999958
- 0.1999999955
- 0.2099999953
- 0.2199999951
- 0.2299999949
- 0.2399999946
- 0.2499999944
- 0.2599999942
- 0.2699999940
- 0.2799999937
- 0.2899999935
- 0.2999999933
- 0.3099999931
- 0.3199999928
- 0.3299999926
- 0.3399999924
- 0.3499999922
- 0.3599999920
- 0.3699999917
- 0.3799999915
- 0.3899999913
- 0.3999999911
- 0.4099999908
- 0.4199999906
- 0.4299999904
- 0.4399999902
- 0.4499999899
- 0.4599999897
- 0.4699999895
- 0.4799999893
- 0.4899999890
- 0.4999999888
- 0.5099999886
- 0.5199999884
- 0.5299999882
- 0.5399999879
- 0.5499999877
- 0.5599999875
- 0.5699999873
|
du coup ta comparaison entre ces nombres et 0.5 ne sera jamais vraie
Message édité par xilebo le 07-02-2007 à 20:41:53