Pourquoi la Formule Excel "=MOD(16432350,10)" donne t'elle 9,99999999813735 et pas 0 ?

Anonyme
2024-03-22T11:30:01+00:00

Bonjour,

Je suis plus que perplexe.

Je ne pense pas me tromper en disant que le RESTE de la DIVISION de ... 16432350 ... PAR10 ... devrait être 0 ?

Je me propose donc d'utiliser la Formule ... =MOD(16432350,10)

J'obtiens ... 9,99999999813735

Je suis sur Windows 11 avec Excel 365

Je sais que Excel utilise la représentation en virgule flottante pour stocker les nombres décimaux.

Je comprendrais donc que le résultat soit, par exemple... 0,0999999999813735

Donc proche de ... 0.

Mais ... 9,99999999813735

Proche de ... 10 ?

Si quelqu'un peut me dire où est mon erreur ?

Merci d'avance

Franck

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

8 réponses

  1. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2024-03-23T09:14:33+00:00

    Je suis d'accord avec toi mais petite remarque :

    =a-(b*ENT(a/b)) n'est pas la bonne solution non plus.

    ex : a = -11, b=4

    =-11-(4*ENT(-11/4))= - 1 !!! (en négatif ENT s'éloigne de 0)

    Ce serait plus

    =a-(b*TRONQUE(a/b))

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2024-03-22T14:31:16+00:00

    Bonjour Arnaud,

    Pour moi, il y a deux problèmes avec MOD. L'un, c'est qu'elle renvoie des résultats complètement faux pour certaines valeurs, et l'autre, elle gère mal les arrondis dus aux calculs.

    Deux raisons de ne pas l'utiliser...

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2024-03-22T14:19:11+00:00

    Bonjour Daniel,

    Tu indique "Cette erreur se produite de façon aléatoire" mais pour moi ce n'était qu'avec certaine valeurs précises.

    Les problème des virgules flottantes, on l'a dans MOD(1.9 ; 0.1) ou MOD(4.2 ; 0.6) par exemple.

    Mais je ne l'ai pas vu avec 1643350 et 10 (d'où ma question et l'affichage de décimales).

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2024-03-22T13:50:48+00:00

    Bonjour,

    Cette erreur se produite de façon aléatoire. Elle est due à la méthode de calcul des ordinateurs. Pour des raisons de performances, les calculs se font en virgule flottante. Il arrive que la conversion virgule flottante vers décimal provoque ce genre d'erreur. Généralement, les fonctions Excel gèrent ce genre de problème. MOD fait notoirement exception. Si tu veux obtenir le reste de a/b, il vaut mieux écrire :

    =a-(b*ENT(a/b))

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2024-03-22T11:43:45+00:00

    Bonjour

    Pas de pb chez moi

    Es-tu sur que c'est bien 1643350 et 10 que tu utilises ?

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire