XL 2016 Problème d'arrondi

guy99

XLDnaute Nouveau
Bonjour,

je compte sur vous pour remédier à un problème qui me tracasse.

Sur Excel, la valeur 0.15 est arrondi à 0.2, jusque là, tout est normal.
Mais lorsque je demande 99.6-99.45, Excel m'affiche 0.15, résultat correct mais lorsque je demande l'arrondi, il m'affiche 0.1

Je ne comprends pas d'où ça peut venir.
Merci d'avance pour votre aide.
 

job75

XLDnaute Barbatruc
Bonsoir guy99,

En A1 99,6 en B1 99,45 en C1 formule =A1-C1

Mettez la cellule C1 au format Nombre 15 décimales, il s'affiche 0,149999999999991

Le résultat du calcul de C1 est donc très légèrement inférieur à 15, donc avec avec le format Nombre une décimale il s'affichera 0,1...

A+
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Ce qui m'étonne, moi, c'est qu'il trouve 2 comme arrondi de la traduction en binaire virgule flottante double précision de 0,15 qui est déjà au départ < 0,15 :
.
1570565209921.png

Cela dit ABS(99,6-99,45-1,5)<0,0000001 est bien VRAI, alors c'est comme ça qu'il faut faire si c'est ce que vous voulez déterminer.
 

Dranreb

XLDnaute Barbatruc
Notez bien: si c'est pour déterminer des égalités sur des résultats de calculs différents, ça ne sert à rien d'arrondir préalablement tous les nombres de départ: leurs véritables valeurs ne seront pas pour autant parfaitement fidèles à leurs représentations en décimal, et des calculs effectués avec le seront forcément encore moins.
La seule chose à faire pour comparer deux valeurs non entières obtenues par des voies différentes c'est de tester si la valeur absolue de leur différence est inférieure à un très petit seuil. Ça fait bien un demi siècle que j'ai toujours dû faire comme ça dans tous les langages, FORTRAN et assembleur notamment. Excel n'a aucune faiblesse particulière de ce coté là, à part de ne pas utiliser en interne le type de donnée Currency pour les montants, ce qui garantirait toujours 4 décimales exactes, mais pas plus.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 327
Membres
102 862
dernier inscrit
Emma35400