VB6 - erreur double précision

mhii Messages postés 1 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 14 avril 2003 - 14 avril 2003 à 08:30
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 14 avril 2003 à 18:30
Voici l'erreur VB6 qui me pourit la vie :
( copier & coller dans form )

***///***

Private Sub Command1_Click()

Dim lng_NBR_ARTIC As Long
Dim dbl_PRIX_ARTIC As Double
Dim dbl_PRIX_TOTAL As Double
Dim dbl_MNT_RECU As Double

lng_NBR_ARTIC = 12
dbl_PRIX_ARTIC = 1.2
dbl_PRIX_TOTAL = CDbl(lng_NBR_ARTIC) * dbl_PRIX_ARTIC

dbl_MNT_RECU = 14.4

' mon erreur ci-dessous est que 14.40 > 14.40 !!!

If dbl_MNT_RECU > dbl_PRIX_TOTAL Then
MsgBox "Montant reçu > Prix Total !!!"
Else
MsgBox "Montant reçu <= Prix Total !!!"
End If

End Sub

***///***

Pouvez-vous m'indiquer comment résoudre ce problème (en espérant que cela ne se produise pas avec d'autres nombres) .

Merci d'avance.

2 réponses

stevebelgium Messages postés 180 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 7 juin 2003 1
14 avril 2003 à 11:01
dbl_MNT_RECU = double
dbl_PRIX_TOTAL = double

dbl_MNT_RECU - dbl_PRIX_TOTAL = 1.77635683940025E-15

++++++++++++++++++++++++++

dbl_MNT_RECU = single
dbl_PRIX_TOTAL = single

dbl_MNT_RECU - dbl_PRIX_TOTAL = -5.72204589488479E-07

++++++++++++++++++++++++++

Solution : round

Returns a number rounded to a specified number of decimal places. (ex 10)

round(dbl_MNT_RECU,10) - round(dbl_PRIX_TOTAL ,10) = 0
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
14 avril 2003 à 18:30
Salut

On va rarement jusqu'à la quinzième décimale pour les prix !
Il me semble que 3 sont suffisantes. Dans ce cas,

If dbl_MNT_RECU - dbl_PRIX_TOTAL > 0.001 Then
0
Rejoignez-nous