• [^] # Re: Heisenbug...

    Posté par . En réponse au journal printf debugging considered harmful. Évalué à 1.

    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."