Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

overflow bien étrange...

solquagerius

XLDnaute Junior
Bonjour,

Je me casse la tête sur une ligne étrange...
Dans un module de classe j'écris tout bêtement dans une fonction :
a = 343 * 233
et sur cette ligne j'ai un overflow... a est déclarée en Long, j'ai aussi essayé en double, mais rien n'y fait.
Il plante dès que la multiplication dépasse 32 768, pourtant quand je met directement a = 40 000 par exemple, ca marche bien.

J'ai pas trouvé de post sur ce pb dans le forum, pourtant j'imagine que ce problème doit être connu.

Merci.
 

nolich

XLDnaute Occasionnel
Re : overflow bien étrange...

Bonjour solquagerius, bonjour à toutes et à tous


Ton problème est un simple cas de type de données :

=> a est long et a=40000 est correct, mais quand tu écris a = 343 * 233, XL donne le type Integer à 343 et 233, il effectue la multiplication et BING ! Overflow !!! En fait, la conversion en type Long ne se fait qu'après la multiplication d'où l'erreur.

La seule solution est de forcer le type des contantes ainsi :

a = 343& * 233& , ainsi toutes tes données sont de type Long et la multiplication ne posera plus de pb.

En espérant avoir été clair

@+

EDIT : re mromain
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
628
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…