: For ... Next et fouttage de gueule [VB] - Programmation
Marsh Posté le 22-05-2001 à 11:05:14
t'es sur que ca marche les boucles For avec des nombres qui ne sont pas des entiers???
personnellement j'ai jamais vu ca...
Marsh Posté le 22-05-2001 à 11:13:46
fin meme si ca marche...
qd tu utilises de nombres réels faut tjs avoir à l'esprit que ce ne sont pas des nombres "ronds"
autrement dit tu as un step de 0.1 mais en réalité tu as un step de 0.10000001 'fin un truc du genre... et c'est de la que pourrait provenir ton erreur
Marsh Posté le 22-05-2001 à 11:15:30
Oui, sans doute que:
0.1 + 0.1 + 0.1 + 0.1 + 0.1 > 0.5
Remplace le 0.5 par 0.51.
Marsh Posté le 22-05-2001 à 11:59:47
Tu dois pas être avec le dernier service pack
car j'ai essayé et j'ai bien 2 fois 6 messages
Je suis en SP4
Marsh Posté le 22-05-2001 à 12:02:34
le probleme c'est que ce source proviens d'un test que j'ai réalisé.
dans mon code c'est pas 0.5 que j'ai, mais une variable ...
je suis dans la m***e alors ...
Marsh Posté le 22-05-2001 à 12:03:15
ReplyMarsh Posté le 22-05-2001 à 12:11:19
Tu fais :
For i = 0 To MAX+PAS/2 Step PAS
MsgBox("Test2" )
Next i
et ça devrait marcher !!!
Marsh Posté le 22-05-2001 à 12:28:21
hehe ... j'ai justement une variable PAS
en fait j'ai une bidouille de ce genre, liée à MAX que je bidouille plus haut ...
je voulais surtout savoir pkoi VB il peut pas ...
merci bien les gars
Marsh Posté le 22-05-2001 à 12:34:21
Pour la clarté de ton code, il est bon d'avoir une règle de nommage pour les variables. C'est plus long à écrire mais plus facile à lire. Moi j'utilise une adaptation perso de la notation hongroise qui donne qq chose du genre :
IntVar pour un entier court
LongVar pour un entier long
StrVar pour une chaine de caractères
RealVar pour un réel
etc etc, à adapter à chaque logiciel de développement.
C'était juste pour répondre au fait que tu avais une variable nommée Pas !!!
Marsh Posté le 22-05-2001 à 14:18:47
Et bien pour moi ca marche...
6 fois pour Test1 et 6 fois pour test2
Donc bizarre... peut etre un bug corrigé sur ma version VB6 SP5
Marsh Posté le 22-05-2001 à 10:15:51
p****n je comprenais pas l'erreur dans mon algo et elle vient de la maniere tordue dont fonctionne le for ... next :
il est écrit dans l'aide :
"condition d'éxecution de la boucle : si le pas est positif, counter <= end"
ici counter c'est i et end c'est soit 5 soit 0.5
et ... Test1 s'affiche 6 fois : normal
mais Test2 s'affiche 5 fois : pourquoi ?
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite