Multiplication refusée....

Résolu
bil kid Messages postés 11 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 19 septembre 2004 - 19 sept. 2004 à 00:45
cs_schtroumf Messages postés 59 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 22 juillet 2008 - 18 févr. 2006 à 16:37
Voila mon problème:

a=(720*60)/(t*500)

Ceci a lieu dans une procédure click, et a comme t sont deux variable currency. T aynat pour valeur 1.

Quand le code s'execute, j'ai erreur n°6, avec depassement de capacité.
M'enerve ça!!!
Et ce qui m'enerve encore plus, c'est que si je transorme cela en:
a= (72000*6000)/(t*500)
La ça passe.
C'est un bug ou quoi sous VB6???
A+
Phil

3 réponses

cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
19 sept. 2004 à 01:39
Dim a As Currency
Dim t As Currency
Dim c, d As Integer
t = 1
c = 720
d = 60
a = (c * d) / (t * 500)

ou

Dim a As Currency
Dim t As Currency
t = 1
a = (cdbl(720) * cdbl(60)) / (t * 500)

PS : Pourquoi ??? Euuh je ne sais pas !

:-p [mailto:cyberscorp2004@msn.com MSN] :big) [mailto:frop01@yahoo.fr YAHOO] >:)

Membre du club CodeS-SourceS
3
bil kid Messages postés 11 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 19 septembre 2004
19 sept. 2004 à 08:47
Faut le faire quand même!
Moi qui tenais à laisser ce 60*720 pour me permettre de comprendre le code ulterieurement, ben la j'ai fait la multiplication moi-même. >:)
Merci Frop01.
A+
Phil
0
cs_schtroumf Messages postés 59 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 22 juillet 2008
18 févr. 2006 à 16:37
Juste pour donner une petite précision. Quand on fait une multiplication bête de 2 int par exemple 2*3 la multiplication est acceptée parce que le résultat est un int. Par contre si on fait 255*601, le résultat n'est plus un int mais un long donc vb consdère qu'il y a dépassement de capacité. Pour faire 255*601 il faut ecrire en fait clng(255)*601 => on a un int et un long avec un resulat de type long donc ça marche. C'est tordu mais il faut le savoir
0
Rejoignez-nous