Dépassement de capacité incohérent

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 19 nov. 2002 à 18:05
cs_titatou Messages postés 25 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 16 avril 2005 - 3 sept. 2003 à 20:32
Bonjour à vous tous,

je voulais vous demander de l'aide sur une erreur que me signale VB qui me paraît très bizarre : Essayez de taper ceci :

Msgbox 256*150

VB vous signale alors une erreur n°6 : Dépassement de capacité, ce qui est complètement absurde, puisque même si on déclare une variable de type Double, et qu'on fait

DBL_Variable = 256 * 150

VB vous renvoie également une erreur identique à celle mentionnée ci dessus. Si vous avez des commentaires à faire, ou même, me proposer une solution de secours, ce serais vraiment sympa, car à cause de çà, je suis bloqué !!!

DARK SIDIOUS

DARK SIDIOUS

3 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
19 nov. 2002 à 18:30
Mais ... 256& * 150 donne bien 38 400
ainsi que 256*150& (et bien sûr 256&*150&)
De même avec Const a As Long = 256
.......
Apparemment, avec 256*150, VB fait le calcul en Integer dont la valeur absolue est limitée à 32 767
alors que si l'un des facteurs est de type Long, plus de problème jusqu'à 2 147 483 647
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 nov. 2002 à 06:28
Oui, exactement, mais c'est bon bon, j'ai trouvé une petite astuce qui permet de multiplier deux integer facilement :

Val(Interger1) * Val(Integer2). Et là, ca marche !

DARK SIDIOUS
0
cs_titatou Messages postés 25 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 16 avril 2005 2
3 sept. 2003 à 20:32
Titatou2000
0
Rejoignez-nous