• [^] # Re: Commentaire de soutien ;-)

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

    corollaire : dans quel contexte mathématique numérique théorique, x - x n'est pas zéro... ?

    Dans aucun, même dans l'arithmétique flottante en base 2 (en excluant les infinis, bien sûr ;-).

    >>> 0.2 - 0.2
    0.0

    Le principe de l'arithmétique flottante est de traiter des nombres de la forme :

    Ce qu'il y a c'est que par défaut, python utilise la base 2 pour traiter les nombres à virgules, conformément à la norme IEEE-754, et que certains nombres décimaux ne sont pas représentables de manière finie dans une telle base (comme 0.2). Néanmoins cette norme a été révisée en 2008 pour y inclure également l'arithmétique flottante en base 10 (ce qu'implémente le module decimal de python) mais elle ne bénéficie pas d'accélération matériel (sauf chez des processeurs utilisés en autres dans la finance : SPARC64, POWER PC (Power 6), IBM System Z9).

    En gros on nous explique que pour avoir les performances d'un avion de chasse, on ne pourrait plus voler comme un avion de lignes intérieures...

    Non, on te dit d'utiliser le module decimal, il est fait pour cela. ;-)

    Cela étant, en base 10 tu auras des problèmes similaires de nombres non représentables, et même en base 2 il faut juste savoir écrire ses opérations :

    >>> 2.0 - (1.8 +0.2)
    0.0

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.