Je viens de me rendre compte que VBA retournait 0,899999976158142 comme
résultat de 9 / 10 !!!
Il en est de même pour d'autres fractions.
Même si j'ai trouvé un contournement (je force un arrondi à la 5e décimale),
je trouve que c'est un problème grave car cela fausse les calculs qui se
basent sur ces valeurs erronées.
D'autres ont-ils eu ce problème ?
Microsoft est-il au courant de ce bug ?
Salut Eric, Je ne constate pas ceci sur mon poste WinXP pro SP1/Excel 2002
padbra
"Eric SURIN" a écrit dans le message de news: BBE8DA64.C19D%
Bonjour,
Je viens de me rendre compte que VBA retournait 0,899999976158142 comme résultat de 9 / 10 !!!
Il en est de même pour d'autres fractions.
Même si j'ai trouvé un contournement (je force un arrondi à la 5e décimale),
je trouve que c'est un problème grave car cela fausse les calculs qui se basent sur ces valeurs erronées.
D'autres ont-ils eu ce problème ? Microsoft est-il au courant de ce bug ?
Merci pour vos commentaires.
Eric
Eric SURIN
J'avais oublié de préciser que c'est un problème propre à Excel sous Mac (quelle que soit la version d'Excel et de l'OS : 98, 2001 pour OS9 et Excel X pour OS X)
Eric
dans l'article , padbra à a écrit le 25/11/03 10:31 :
Salut Eric, Je ne constate pas ceci sur mon poste WinXP pro SP1/Excel 2002
padbra
"Eric SURIN" a écrit dans le message de news: BBE8DA64.C19D%
Bonjour,
Je viens de me rendre compte que VBA retournait 0,899999976158142 comme résultat de 9 / 10 !!!
Il en est de même pour d'autres fractions.
Même si j'ai trouvé un contournement (je force un arrondi à la 5e décimale),
je trouve que c'est un problème grave car cela fausse les calculs qui se basent sur ces valeurs erronées.
D'autres ont-ils eu ce problème ? Microsoft est-il au courant de ce bug ?
Merci pour vos commentaires.
Eric
J'avais oublié de préciser que c'est un problème propre à Excel sous Mac
(quelle que soit la version d'Excel et de l'OS : 98, 2001 pour OS9 et Excel
X pour OS X)
Eric
dans l'article Of73MczsDHA.2244@TK2MSFTNGP09.phx.gbl, padbra à
padbra@suiquapad.bra a écrit le 25/11/03 10:31 :
Salut Eric,
Je ne constate pas ceci sur mon poste WinXP pro SP1/Excel 2002
padbra
"Eric SURIN" <esurin@no_-_spam_netcourrier.com> a écrit dans le message de
news: BBE8DA64.C19D%esurin@no_-_spam_netcourrier.com...
Bonjour,
Je viens de me rendre compte que VBA retournait 0,899999976158142 comme
résultat de 9 / 10 !!!
Il en est de même pour d'autres fractions.
Même si j'ai trouvé un contournement (je force un arrondi à la 5e
décimale),
je trouve que c'est un problème grave car cela fausse les calculs qui se
basent sur ces valeurs erronées.
D'autres ont-ils eu ce problème ?
Microsoft est-il au courant de ce bug ?
J'avais oublié de préciser que c'est un problème propre à Excel sous Mac (quelle que soit la version d'Excel et de l'OS : 98, 2001 pour OS9 et Excel X pour OS X)
Eric
dans l'article , padbra à a écrit le 25/11/03 10:31 :
Salut Eric, Je ne constate pas ceci sur mon poste WinXP pro SP1/Excel 2002
padbra
"Eric SURIN" a écrit dans le message de news: BBE8DA64.C19D%
Bonjour,
Je viens de me rendre compte que VBA retournait 0,899999976158142 comme résultat de 9 / 10 !!!
Il en est de même pour d'autres fractions.
Même si j'ai trouvé un contournement (je force un arrondi à la 5e décimale),
je trouve que c'est un problème grave car cela fausse les calculs qui se basent sur ces valeurs erronées.
D'autres ont-ils eu ce problème ? Microsoft est-il au courant de ce bug ?
Merci pour vos commentaires.
Eric
Michel Gaboly
Bonjour,
Sûrement pas !
C'est un problème classique lié aux conversions : les ordinateurs calculent en binaire, ce qui implique une conversion pour exprimer des nombres en base 10 avec des décimales.
Ces conversions entraînent des écarts, impercptibles le plus souvent
Voici un extrait d'une réponse que j'ai faite récemment (ficelle "Comparaison dans VBA de variables "Double" du 12 novembre, initiée par quelqu'un qui a rencontré le même problème que toi, avec XL 2002, sous XP :
Bonjour,
Tout cela est très simple en fait, contrairement aux apparences ;-)))
Les ordinateurs utilisent le système binaire et non le système décimal. Cela conduit à de très légères approximations lors de la conversion de nombres non entiers.
Avec des variables déclarées comme Double, le niveau de précision est tel que ces approximations génèrent un écart (infime, mais non nul) lors de l'addition. Il n'y a donc pas d'égalité, ce qu'on peut vérifier avec :
Sub CompareDouble() Dim i As Double, j As Double, k As Double i = 130.88 j = 120.2 k = 251.08 MsgBox k - (i + j) End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84 que multiplie 10 puissance -14. Par conséquent le test d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec une précision moindre (4 octets au lieu de 8), l'écart n'est plus perceptible.
Ce qu'il y a d'étonnant c'est qu'en déclarant les variables en "single" comme le dis Pierre Dumas ça fonctionne mais pas en "Double". J'ai effectivement le même problème en utilisant les ranges. Etrange. Pour ma part, ça me dépasse...
Philippe
"Philippe Bretelle" a écrit dans le message de news:1fd201c3a903$58f98750 $ Bonjour à tous,
Je suis nouveau sur le forum. je suis sous windows 2000 pro et excel 2002 Normalement, les variables somme et but sont égales mais la boite de dialogue ne s'affiche pas. Mon code est le suivant:
Dim somme As Double somme = Cells(1, 1).Value + Cells(2, 1).Value ' En A1 il y a 130,88 et en A2 120.2 Dim but As Double but = Worksheets(1).Cells(1, 6).Value 'en F1, il y a 251,08 If somme = but Then MsgBox ("égal") End If
Merci par avance. PS: J'ai quelques notions de VBA mais je reste débutant. Ma question est peut-être très bête... et je m'en excuse si c'est le cas mais là, je ne vois pas ce qui cloche!!!
J'avais oublié de préciser que c'est un problème propre à Excel sous Mac (quelle que soit la version d'Excel et de l'OS : 98, 2001 pour OS9 et Excel X pour OS X)
Eric
dans l'article , padbra à a écrit le 25/11/03 10:31 :
Salut Eric, Je ne constate pas ceci sur mon poste WinXP pro SP1/Excel 2002
padbra
"Eric SURIN" a écrit dans le message de news: BBE8DA64.C19D%
Bonjour,
Je viens de me rendre compte que VBA retournait 0,899999976158142 comme résultat de 9 / 10 !!!
Il en est de même pour d'autres fractions.
Même si j'ai trouvé un contournement (je force un arrondi à la 5e décimale),
je trouve que c'est un problème grave car cela fausse les calculs qui se basent sur ces valeurs erronées.
D'autres ont-ils eu ce problème ? Microsoft est-il au courant de ce bug ?
Merci pour vos commentaires.
Eric
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonjour,
Sûrement pas !
C'est un problème classique lié aux conversions : les ordinateurs calculent
en binaire, ce qui implique une conversion pour exprimer des nombres en
base 10 avec des décimales.
Ces conversions entraînent des écarts, impercptibles le plus souvent
Voici un extrait d'une réponse que j'ai faite récemment (ficelle "Comparaison
dans VBA de variables "Double" du 12 novembre, initiée par quelqu'un qui a
rencontré le même problème que toi, avec XL 2002, sous XP :
Bonjour,
Tout cela est très simple en fait, contrairement aux apparences ;-)))
Les ordinateurs utilisent le système binaire et non le système décimal.
Cela conduit à de très légères approximations lors de la conversion de
nombres non entiers.
Avec des variables déclarées comme Double, le niveau de précision est tel
que ces approximations génèrent un écart (infime, mais non nul) lors
de l'addition. Il n'y a donc pas d'égalité, ce qu'on peut vérifier avec :
Sub CompareDouble()
Dim i As Double, j As Double, k As Double
i = 130.88
j = 120.2
k = 251.08
MsgBox k - (i + j)
End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84 que
multiplie 10 puissance -14. Par conséquent le test d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec une précision
moindre (4 octets au lieu de 8), l'écart n'est plus perceptible.
Ce qu'il y a d'étonnant c'est qu'en déclarant les
variables en "single" comme le dis Pierre Dumas ça
fonctionne mais pas en "Double".
J'ai effectivement le même problème en utilisant les
ranges.
Etrange. Pour ma part, ça me dépasse...
Philippe
"Philippe Bretelle" <anonymous@discussions.microsoft.com> a écrit dans le
message de news:1fd201c3a903$58f98750 $a601280a@phx.gbl...
Bonjour à tous,
Je suis nouveau sur le forum.
je suis sous windows 2000 pro et excel 2002
Normalement, les variables somme et but sont égales mais
la boite de dialogue ne s'affiche pas.
Mon code est le suivant:
Dim somme As Double
somme = Cells(1, 1).Value + Cells(2, 1).Value
' En A1 il y a 130,88 et en A2 120.2
Dim but As Double
but = Worksheets(1).Cells(1, 6).Value
'en F1, il y a 251,08
If somme = but Then
MsgBox ("égal")
End If
Merci par avance.
PS: J'ai quelques notions de VBA mais je reste débutant.
Ma question est peut-être très bête... et je m'en excuse
si c'est le cas mais là, je ne vois pas ce qui cloche!!!
J'avais oublié de préciser que c'est un problème propre à Excel sous Mac
(quelle que soit la version d'Excel et de l'OS : 98, 2001 pour OS9 et Excel
X pour OS X)
Eric
dans l'article Of73MczsDHA.2244@TK2MSFTNGP09.phx.gbl, padbra à
padbra@suiquapad.bra a écrit le 25/11/03 10:31 :
Salut Eric,
Je ne constate pas ceci sur mon poste WinXP pro SP1/Excel 2002
padbra
"Eric SURIN" <esurin@no_-_spam_netcourrier.com> a écrit dans le message de
news: BBE8DA64.C19D%esurin@no_-_spam_netcourrier.com...
Bonjour,
Je viens de me rendre compte que VBA retournait 0,899999976158142 comme
résultat de 9 / 10 !!!
Il en est de même pour d'autres fractions.
Même si j'ai trouvé un contournement (je force un arrondi à la 5e
décimale),
je trouve que c'est un problème grave car cela fausse les calculs qui se
basent sur ces valeurs erronées.
D'autres ont-ils eu ce problème ?
Microsoft est-il au courant de ce bug ?
C'est un problème classique lié aux conversions : les ordinateurs calculent en binaire, ce qui implique une conversion pour exprimer des nombres en base 10 avec des décimales.
Ces conversions entraînent des écarts, impercptibles le plus souvent
Voici un extrait d'une réponse que j'ai faite récemment (ficelle "Comparaison dans VBA de variables "Double" du 12 novembre, initiée par quelqu'un qui a rencontré le même problème que toi, avec XL 2002, sous XP :
Bonjour,
Tout cela est très simple en fait, contrairement aux apparences ;-)))
Les ordinateurs utilisent le système binaire et non le système décimal. Cela conduit à de très légères approximations lors de la conversion de nombres non entiers.
Avec des variables déclarées comme Double, le niveau de précision est tel que ces approximations génèrent un écart (infime, mais non nul) lors de l'addition. Il n'y a donc pas d'égalité, ce qu'on peut vérifier avec :
Sub CompareDouble() Dim i As Double, j As Double, k As Double i = 130.88 j = 120.2 k = 251.08 MsgBox k - (i + j) End Sub
MsgBox affiche un écart de 2,8421709430404E-14, soit 2,84 que multiplie 10 puissance -14. Par conséquent le test d'égalité échoue.
En déclarant les variables en Single, c'est-à-dire avec une précision moindre (4 octets au lieu de 8), l'écart n'est plus perceptible.
Ce qu'il y a d'étonnant c'est qu'en déclarant les variables en "single" comme le dis Pierre Dumas ça fonctionne mais pas en "Double". J'ai effectivement le même problème en utilisant les ranges. Etrange. Pour ma part, ça me dépasse...
Philippe
"Philippe Bretelle" a écrit dans le message de news:1fd201c3a903$58f98750 $ Bonjour à tous,
Je suis nouveau sur le forum. je suis sous windows 2000 pro et excel 2002 Normalement, les variables somme et but sont égales mais la boite de dialogue ne s'affiche pas. Mon code est le suivant:
Dim somme As Double somme = Cells(1, 1).Value + Cells(2, 1).Value ' En A1 il y a 130,88 et en A2 120.2 Dim but As Double but = Worksheets(1).Cells(1, 6).Value 'en F1, il y a 251,08 If somme = but Then MsgBox ("égal") End If
Merci par avance. PS: J'ai quelques notions de VBA mais je reste débutant. Ma question est peut-être très bête... et je m'en excuse si c'est le cas mais là, je ne vois pas ce qui cloche!!!
J'avais oublié de préciser que c'est un problème propre à Excel sous Mac (quelle que soit la version d'Excel et de l'OS : 98, 2001 pour OS9 et Excel X pour OS X)
Eric
dans l'article , padbra à a écrit le 25/11/03 10:31 :
Salut Eric, Je ne constate pas ceci sur mon poste WinXP pro SP1/Excel 2002
padbra
"Eric SURIN" a écrit dans le message de news: BBE8DA64.C19D%
Bonjour,
Je viens de me rendre compte que VBA retournait 0,899999976158142 comme résultat de 9 / 10 !!!
Il en est de même pour d'autres fractions.
Même si j'ai trouvé un contournement (je force un arrondi à la 5e décimale),
je trouve que c'est un problème grave car cela fausse les calculs qui se basent sur ces valeurs erronées.
D'autres ont-ils eu ce problème ? Microsoft est-il au courant de ce bug ?
Merci pour vos commentaires.
Eric
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Gugus
Salut, Tu penses que c'est le fait d'être en Mac qui produit cette erreur? J'ai comme un doute. Qui peut confirmer? A+
"Eric SURIN" a écrit dans le message de news:BBE8E750.C1BA%
J'avais oublié de préciser que c'est un problème propre à Excel sous Mac (quelle que soit la version d'Excel et de l'OS : 98, 2001 pour OS9 et Excel
X pour OS X)
Eric
dans l'article , padbra à a écrit le 25/11/03 10:31 :
Salut Eric, Je ne constate pas ceci sur mon poste WinXP pro SP1/Excel 2002
padbra
"Eric SURIN" a écrit dans le message de
news: BBE8DA64.C19D%
Bonjour,
Je viens de me rendre compte que VBA retournait 0,899999976158142 comme résultat de 9 / 10 !!!
Il en est de même pour d'autres fractions.
Même si j'ai trouvé un contournement (je force un arrondi à la 5e décimale),
je trouve que c'est un problème grave car cela fausse les calculs qui se
basent sur ces valeurs erronées.
D'autres ont-ils eu ce problème ? Microsoft est-il au courant de ce bug ?
Merci pour vos commentaires.
Eric
Salut,
Tu penses que c'est le fait d'être en Mac qui produit cette erreur? J'ai
comme un doute. Qui peut confirmer?
A+
"Eric SURIN" <esurin@no_-_spam_netcourrier.com> a écrit dans le message de
news:BBE8E750.C1BA%esurin@no_-_spam_netcourrier.com...
J'avais oublié de préciser que c'est un problème propre à Excel sous Mac
(quelle que soit la version d'Excel et de l'OS : 98, 2001 pour OS9 et
Excel
X pour OS X)
Eric
dans l'article Of73MczsDHA.2244@TK2MSFTNGP09.phx.gbl, padbra à
padbra@suiquapad.bra a écrit le 25/11/03 10:31 :
Salut Eric,
Je ne constate pas ceci sur mon poste WinXP pro SP1/Excel 2002
padbra
"Eric SURIN" <esurin@no_-_spam_netcourrier.com> a écrit dans le message
de