Décimales importunes

Résolu
danielc0 Messages postés 2182 Date d'inscription   Statut Membre Dernière intervention   -  
danielc0 Messages postés 2182 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Configuration: Windows / Firefox 67.0

Excel 2016
Je suis en train de me débarrasser des décimales générées parfois dans les calculs. Pour ça, j'ai écrit la formule :
=SI(C10-ARRONDI(C10;2)<>0;C10;"")
C10 contient :
20520.99
et pas d'autres décimales :

et le test
=C10-ARRONDI(C10;2)<>0
renvoie VRAI.
Est-ce que mes neurones sont en train de fondre ?
Merci par avance.

Daniel

2 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    tu lis 20520.99 mais le résultat calculé est peut-être avec une différence à la 12e ou 15e décimale, que tu ne vois pas.
    Fait =C10 - 20520.99 - 0 pour la visualiser (important le - 0 !)
    C'est dû aux erreurs de conversion les nombres étant stockés en binaire.
    eric
    0
  2. danielc0 Messages postés 2182 Date d'inscription   Statut Membre Dernière intervention   287
     
    Tu as raison ! J'ai pourtant affiché 16 décimales et je ne vois rien :



    Mais je ne comprends pas ce que le "-0" apporte. Si tu peux me l'expliquer ?

    Merci.

    Daniel
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      copie-colle la formule, tu n'as mis que la moitié... :
      =C10-20520.99-0


      Un peu de lecture : https://fr.wikipedia.org/wiki/IEEE_754
      eric
      0
      1. danielc0 Messages postés 2182 Date d'inscription   Statut Membre Dernière intervention   287 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Non, c'est bien ce que j'ai fait. Ce que je ne comprends pas, c'est le rôle du "-0".
        Sinon, je connais le problème de conversion des nombres en virgule flottante. C'est ces nombres que je piste dans mon classeur.

        Daniel
        0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      C'est pour forcer l'apparition du pouième 1E-13 (par exemple)
      Tu soustrais au résultat un vrai 0 pour ne plus avoir l'arrondi d'affichage =0 tout rond
      Teste avec et sans, tu verras qu'il est souvent nécessaire pour bien visualiser cette anomalie de conversion (qui n'est pas une anomalie d'ailleurs).
      0
      1. danielc0 Messages postés 2182 Date d'inscription   Statut Membre Dernière intervention   287 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Merci, je note le truc.
        Daniel
        0