Dépassement de capacité incohérent

Signaler
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
Messages postés
25
Date d'inscription
samedi 22 février 2003
Statut
Membre
Dernière intervention
16 avril 2005
-
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

Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
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
Messages postés
25
Date d'inscription
samedi 22 février 2003
Statut
Membre
Dernière intervention
16 avril 2005
2
Titatou2000
0