Bonjour, j'ai un pb sur ma conversion d'un double en entier (j'avoue que j'ai un peu honte de cette question mais je ne trouve pas mon erreur sur mon prgm de 10 lignes...)
Voici la réponse a la fin de l'exécution du prgm :
nb_iter = 4000
nb_iter2 = 4001
4001
Maintenant, si je fais dt=1e-2, 1e-3, 1e-4, 1e-6, 1e-7 j'ai bien nb_iter==nb_iter2==le calcul de la dernière ligne, mais pour dt=1e-5 et 1e-8 je n'ai plus les mêmes résultats !!
Pouvez-vous m'expliquer l'erreur s'il vous plait ?
(j'ai besoin de nb_iter car je veux faire un vector de longueur nb_iter (qui est un entier))
merci par avance (et excusez-moi de cette question sûrement très simple)
j'ai trouvé la solution :
en fait, pour dt=1e-5, tfin/ds+1=4000.9999999
donc comme la conversion double -> int est une simple troncature, il faut que je tape
cnst ulong nb_iter = (ulong ) (tfin/ds+1+0.5);
le +0.5 ne sert qu'à passer à l'unité supérieure