• [^] # Utilisation des flottants

    Posté par . En réponse au journal [Humour] vers un monde différent. Évalué à 5.

    r=0
    while r != 1:
     r += 0.1
    print ('fini !')

    Une règle de base de mes lointains débuts en informatique : ne jamais utiliser d’égalité (ou juste de différence, qui revient au même) comme règle d’arrêt, toujours utiliser une infériorité ou une supériorité.

    r=0
    while r < 1:
     r += 0.1
    print ('fini !')

    Ça te garantit que ta boucle s’arrête.
    Ça ne te garantit pas qu’elle s’arrête au tour attendu.

    En l’occurrence :

    print(r)
    1.0999999999999999

    Conclusion personnelle : un programme qui utilise des flottants dans sa logique de contrôle et pas uniquement pour représenter des données a de forts risques d’être bogué (je ne dis pas que c’est toujours le cas, mais il faut vraiment savoir ce qu’on fait).

    « Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone