[Résolu] [VBA] Multiplication fausse

Multiplication fausse [Résolu] [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 16-01-2010 à 13:03:32    

Bonjour,
 
Une (peut-être trop) rapide recherche sur le site ne m'a pas permis de trouver un topic équivalent.
 
Sous Excel 2002 VBA, la formule a = Int(72 - 40 * 1.8) me renvoie -1 au lieu de 0  
( Dans mon code, 72 et 40 sont les valeurs de variables )
 
Comment forcer VBA a obtenir 40*1.8 = 72 et non pas 72 + 1.77635E-15 ?
 
Merci par avance pour votre aide.


Message édité par Cello le 16-01-2010 à 18:03:05
Reply

Marsh Posté le 16-01-2010 à 13:03:32   

Reply

Marsh Posté le 16-01-2010 à 15:11:54    

Salut,

a = Round(72 - 40 * 1.8, 0)

Reply

Marsh Posté le 16-01-2010 à 18:02:24    

Effectivement :-)
Merci.
 
Mais je persiste à penser que l'algo utilisé par mircrosoft n'est pas bon.

Reply

Marsh Posté le 16-01-2010 à 20:22:33    

Salut, un début d'explication (?) sur http://support.microsoft.com/defau [...] -us;225330
et concernant la 1ere version de 2007 il y avait
http://www.excel-downloads.com/for [...] ation.html
http://support.microsoft.com/defau [...] us;Q161234


Message édité par kiki29 le 16-01-2010 à 20:43:15
Reply

Marsh Posté le 17-01-2010 à 13:07:39    

Merci pour ces liens très intéressants.
 
J'aurais dû penser qu'un Int() n'est jamais qu'une comparaison avec une valeur, et qu'à ce titre je dois utiliser Round()
Définitivement, le terme français "ordinateur" est vraiment plus approprié que le "computer" anglo-saxon .


Message édité par Cello le 17-01-2010 à 13:08:56
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed