Bug bizarre : MOD(100*7%;1) n'est pas égal 0

J'ai un tableau avec plein de pourcentages. C'est des pourcentages à deux décimales, d'autres entiers.

Pour que ce soit plus lisible j'ai fait une mise en forme conditionnelle pour que le ",xx" ne soit plus affiché lorsque le pourcentage est entier.

Le format de cellule par défaut est pourcentage à 2 décimales.

Ma règle est =MOD(100*ma cellule;1)=0 et si elle est vraie je passe sur un format de cellule pourcentage sans décimale.

ça marche bien, sauf pour les pourcentages 7, 14, 28, 56, 112, 224, 448, 896 (etc. enfin je suppose je suis pas allée plus loin)

et en effet lorsque je tape simplement =MOD(100*7%;1) dans une cellule ça ne me retourne non pas 0 mais un chiffre tout petit : 8,88178419700125E-16

C'est quoi ce délire?? Comment je peux m'en sortir?

Merci par avance, Audrey

P.S. j'ai essayé avec d'autres nombres premiers mais ça ne semble le faire qu'avec 7...

Bonjour,

c'est dû qu'un nombre fini en décimales ne l'est pas forcément en binaire, ce qui crée une petite erreur d'arrondi.
Compense avec Arrondi(ta_formule;7)
eric

C'est vrai pour d'autres. Excel ne fait pas de calcul "analytique" en analysant comme nous toute simplification, il le fait en utilisant des formules logarithmiques très complexes pour le faire rapidement (il existe des méthodes rapides de calcul comme l'algorithme de Schönhage-Strassen), et comme il alloue une quantité finie de bits, cela donne des écarts infinitésimaux ! Pourquoi ces nombres et pas d'autres ? mystère. Attendons les ordinateurs quantiques beaucoup plus puissants.

7%0,0000000000000008882
14%0,0000000000000017764
28%0,0000000000000035527
29%0,9999999999999960000
55%0,0000000000000071054
56%0,0000000000000071054
57%0,9999999999999930000
58%0,9999999999999930000

merci des explications.

et du coup il y aurait une formule qui marche dans tous les cas? Car forcément le Arrondi proposé par Eric ne fonctionne que pour les cas où l'imprécision est au dessus de 1, pas en dessous.

Je ne comprend pas bien.
L'arrondi que je t'ai proposé à la 7ème décimale fonctionne dans tous les cas qui t'intéressent.
Pourquoi parles-tu de

ne fonctionne que pour les cas où l'imprécision est au dessus de 1

???
eric

Edit : ah, oui, il faut mettre l'arrondi sur ta multiplication :

=MOD(ARRONDI(A2*100;7);1)

Mais tu peux te passer de Mod() :

=A2*100-ENT(A2*100)

Merci beaucoup!

Comme vous l'avez deviné j'avais fait un arrondi du modulo et non un modulo de l'arrondi!

C'est tout bon à présent, parfait.

Rechercher des sujets similaires à "bug bizarre mod 100 pas egal"