Ce n'est pas le (int) qui fait l'arrondi, c'est l'expression mathématique.
Et heureusement !
int i = (int) (100 * 0.1);
peut contenir 9 ???
Ou alors encore mieux :
int a = (int) (100 *2); // donne 200
int b = (int) (100 *2.0); // donne 199
????
Heureusement que non, sinon il y aurait beaucoup plus de bugs ;)
D'après la norme IEEE754 :
"Unbiased which rounds to the nearest value, if the number falls midway it is rounded to the nearest value with an even (zero) least significant bit. This mode is required to be default."
[^] # Re: Heisenbug...
Posté par peau chat . En réponse au journal printf debugging considered harmful. Évalué à 1.
Et heureusement !
int i = (int) (100 * 0.1);
peut contenir 9 ???
Ou alors encore mieux :
int a = (int) (100 *2); // donne 200
int b = (int) (100 *2.0); // donne 199
????
Heureusement que non, sinon il y aurait beaucoup plus de bugs ;)
D'après la norme IEEE754 :
"Unbiased which rounds to the nearest value, if the number falls midway it is rounded to the nearest value with an even (zero) least significant bit. This mode is required to be default."