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).
. 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 ?