Problème de typage [VB] - C#/.NET managed - Programmation
Marsh Posté le 11-10-2002 à 14:40:26
à vue de nez, 3600 * 24 > 65000 donc c'est cette partie qui pète
Essaie avec ((tmptrucmuche / 3600) / 24)
Sinon :
(tmptrucmuche / (clng(3600) * clng(24)))
Ca doit marcher aussi
Ou alors :
tmptrucmuche / 86400
Marsh Posté le 11-10-2002 à 15:18:48
MagicBuzz a écrit a écrit : à vue de nez, 3600 * 24 > 65000 donc c'est cette partie qui pète Essaie avec ((tmptrucmuche / 3600) / 24) Sinon : (tmptrucmuche / (clng(3600) * clng(24))) Ca doit marcher aussi Ou alors : tmptrucmuche / 86400 |
et bien en fait, je fais blabla / 86400
mais c'est quand même étrange d'avoir un dépassement de capacité à cet endroit... le '/' n'accpete quand même pas que des double ?????
Marsh Posté le 11-10-2002 à 15:54:07
Nan, c zarb en effet
Essaie de faire un clng sur les deux opérateurs
Marsh Posté le 11-10-2002 à 16:11:37
En QB, c'est pareil...
Si rien précisé, souvent il fait calcul en entier => explosion.
Et avec / (3600.0 * 24) ? .0 veut dire single (float en C).
Ai eu pb inverse l'autre jour : k% = 1 + n% / 25. n% = 13, k% = 2 because il calcule en single !! Pour embêter . Il fait (25 + n%)/25. J'ai dû rajouter int(n/25).
Marsh Posté le 11-10-2002 à 14:25:36
J'ai un truc assez étrange avec un typage de variable. Bon c'est une question assez bête, mais je ne suis pas un spécialiste du VB. Voilà, je récupère des données à partir d'un active X, dont une heure exprimée en secondes. pour la convertir en heure au sens Access ou Excel, je dois diviser par 3600 et par 24.
Dans la formule
tempVariant = lngNbSecondes / (3600 * 24)
je vois un dépassement de capacité avec le debugger mais pas de message d'erreur par le VB.
Quelle est l'astuce ?