Nick note que la formule « = 0.28100-INT (0.28100) = 0 » renvoie False même si c’est évidemment vrai. Il pense que le problème est lié à l’arrondissement et à la façon dont l’ordinateur utilise l’arithmétique binaire, etc. . Il se demande s’il existe un moyen simple d’éviter les pièges de la formule comme celui-ci.

Avant de chercher des moyens simples d’éviter ce type de problème, il est important de comprendre pourquoi le problème existe. Comme le note Nick, cela a vraiment à voir avec l’arithmétique binaire et le fait qu’Excel arrondit les informations. Dans les coulisses, Excel arrondit toujours les informations à 15 chiffres. Considérez le calcul avec lequel Nick travaille:

=0.28100-INT(0.28100)=0

Lorsque Excel calcule cela pour la première fois, la priorité suivie par Excel le calcule de cette manière:

=(0.28100-INT(0.28100))=0

Notez le jeu supplémentaire de parenthèses. Le résultat de tout ce qui se trouve à gauche de ce signe égal final est 3,55E-15, ce qui signifie que vous vous retrouvez avec cette formule (longue):

=0.00000000000000355=0

Ce n’est évidemment pas vrai, c’est pourquoi vous obtenez la valeur False renvoyée. Il existe plusieurs façons de «corriger» cette situation. Dans ce cas, le plus simple est peut-être de simplement changer votre formule pour supprimer la nécessité de comparer à zéro:

=0.28100=INT(0.28100)

Cette formule renvoie True, comme vous vous en doutez. Cependant, cela peut ne pas répondre à tous vos besoins. Ainsi, une meilleure règle empirique pour éviter les problèmes est de ne jamais se fier à l’arrondi d’Excel. Pour ce faire, implémentez votre propre arrondi explicite, comme indiqué avec ces formules:

=INT(0.28100)-INT(0.28100)=0 =ROUND(0.28100,0)-INT(0.28100)=0 =ROUND(0.28100,5)-ROUND(0.28100,5)=0

Notez que, dans ces cas, vous n’autorisez pas Excel à effectuer des calculs avec sa précision totale, car cela peut provoquer des résultats inattendus lorsque vous comparez à une valeur spécifique, telle que zéro.

Au lieu de cela, vous forcez Excel à arrondir les valeurs (toutes les valeurs avec lesquelles vous travaillez) au niveau de précision dont vous avez besoin pour votre comparaison.

Une autre approche consiste à ne pas faire la comparaison avec une valeur exacte, comme zéro. Au lieu de cela, prévoyez un «facteur de fudge» dans la comparaison, ce qui permet d’arrondir les problèmes. Par exemple, vous pouvez déterminer que vous ne vous souciez que si la comparaison est exacte à un centième des unités que vous supposez. Dans ce cas, la formule originale pourrait être modifiée de cette manière:

=0.28100-INT(0.28100)<0.01

Cela renvoie True, comme on pouvait s’y attendre.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (8145) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Avoiding_Rounding_Errors_in_Formula_Results [Éviter les erreurs d’arrondi dans les résultats de formule].