cs_aurbadguy
Messages postés29Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention30 mai 2004
-
12 mai 2004 à 12:35
Vb Lover
Messages postés221Date d'inscriptionvendredi 30 novembre 2001StatutMembreDernière intervention13 février 2010
-
12 mai 2004 à 22:09
bon j'ai un souci lors de l'execution de mon appli
en debogage il me met depassement de capacité a la ligne :
temp est un double initiliser a 0
Statjour(i).Statping est un integer qui vaut 764 lors de premier passage
Nbenregistrement est aussi un integer qui vaut 764 lors de premier passage
cs_PhilippeE
Messages postés437Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention10 août 20102 12 mai 2004 à 16:19
Nbenregistrement à 0 il aurait un divide by 0 comme erreur.
L'erreur se produit même si on fais dans la fenêtre d'exécution de VB 764 * 100 / 764 en dur.
Tu modifies ton calcul par la ligne suivante pour résoudre ton soucis
cs_PhilippeE
Messages postés437Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention10 août 20102 12 mai 2004 à 16:21
Je ne sais pas pourquoi, mais je sens gros comme un camion que le fait de n'avoir que des Integer fait que le compilateur VB convertit les résultats dans un mauvais type de données.
Vb Lover
Messages postés221Date d'inscriptionvendredi 30 novembre 2001StatutMembreDernière intervention13 février 20105 12 mai 2004 à 22:09
je m'explique :
pour "764*100/764", le compilateur prend la première expression, qui est composée de 2 entiers. Il va donc traiter le résultat comme un entier. Mais 76400 est trop grand ! -> overflow
pour 764*100#/764, la première expression contient un entier et un réel, donc le calcul sera traité dans les réels (prend le plus "grand" des 2 types). et pas de problème.
pour 764*(100/764), le premier calcul est 100/764, qui va être convertit automatiquement en réel car le résultat n'est pas entier (mais il "reste" dans les bornes des entiers), et puis le résultat est tout petit, donc multiplié par 764, y'a pas de problème !