Bonjour ! Quelle est la manière correcte d'utiliser "double" dans la boucle "for" ? Il ne semble pas y avoir d'interdiction d'utiliser "double" dans l'aide.
Quoi qu'il en soit, ma conclusion est que "double" n'est pas recommandé dans la boucle"for" en raison du manque de normalisation de ExpressionZ après chaque itération. Cela peut entraîner au moins deux problèmes : 1) un nombre d'itérations erroné ; 2) des résultats erronés si vous utilisez ExpressionZ pour calculer dans une instruction.
. Все повторяется, пока выражение2 не станет ложным. Если оно ложно, цикл заканчивается и управление передается следующему оператору. ВыражениеЗ вычисляется после каждой итерации. могут отсутствовать, однако разделяющие их точки с запятыми (;) опускать нельзя. Если опущено...
Merci, je comprends pourquoi cela arrive, c'est pourquoi j'ai essayé de normaliser. Ça n'a pas marché pour moi. L'option d'Alexey Viktorov n'a pas résolu le problème non plus, les valeurs restent non normalisées. La question demeure donc : peut-on utiliser "double" dans une boucle et obtenir toujours le nombre correct d'itérations ?
Multipliez par 10 au bon degré jusqu'à obtenir des nombres entiers. Au début, je me débattais aussi, mais maintenant, je peux même convertir les prix en nombres entiers et travailler avec des nombres entiers ou arrondir à des nombres entiers. J'ai moins d'erreurs, une meilleure lisibilité.
En général, comme l'a dit un programmeur après avoir reçu les résumés de la Bourse, je ne comprends pas pourquoi les nombres d'une certaine capacité numérique sont représentés par des nombres réels, plutôt que par des nombres entiers. Ce n'est pas logiquement correct. ))))
Multipliez par 10 au bon degré jusqu'à obtenir des nombres entiers. Au début, j'ai eu du mal moi aussi, mais maintenant je peux même convertir le prix en un nombre entier et travailler avec des nombres entiers ou arrondir à des nombres entiers. J'ai moins d'erreurs, une meilleure lisibilité.
En général, comme l'a dit un programmeur après avoir reçu les résumés de la Bourse, je ne comprends pas pourquoi les nombres d'une certaine capacité numérique sont représentés par des nombres réels, plutôt que par des nombres entiers. Ce n'est pas logiquement correct. ))))
Merci, je vais utiliser int à l'ancienne et ensuite diviser par double. ;)
Bonjour !
Quelle est la manière correcte d'utiliser "double" dans la boucle "for" ? Il ne semble pas y avoir d'interdiction d'utiliser "double" dans l'aide.
Quoi qu'il en soit, ma conclusion est que "double" n'est pas recommandé dans la boucle"for" en raison du manque de normalisation de ExpressionZ après chaque itération. Cela peut entraîner au moins deux problèmes :
1) un nombre d'itérations erroné ;
2) des résultats erronés si vous utilisez ExpressionZ pour calculer dans une instruction.
Merci, je comprends pourquoi cela arrive, c'est pourquoi j'ai essayé de normaliser. Ça n'a pas marché pour moi. L'option d'Alexey Viktorov n'a pas résolu le problème non plus, les valeurs restent non normalisées. La question demeure donc : peut-on utiliser "double" dans une boucle et obtenir toujours le nombre correct d'itérations ?
Multipliez par 10 au bon degré jusqu'à obtenir des nombres entiers. Au début, je me débattais aussi, mais maintenant, je peux même convertir les prix en nombres entiers et travailler avec des nombres entiers ou arrondir à des nombres entiers. J'ai moins d'erreurs, une meilleure lisibilité.
En général, comme l'a dit un programmeur après avoir reçu les résumés de la Bourse, je ne comprends pas pourquoi les nombres d'une certaine capacité numérique sont représentés par des nombres réels, plutôt que par des nombres entiers. Ce n'est pas logiquement correct. ))))
Multipliez par 10 au bon degré jusqu'à obtenir des nombres entiers. Au début, j'ai eu du mal moi aussi, mais maintenant je peux même convertir le prix en un nombre entier et travailler avec des nombres entiers ou arrondir à des nombres entiers. J'ai moins d'erreurs, une meilleure lisibilité.
En général, comme l'a dit un programmeur après avoir reçu les résumés de la Bourse, je ne comprends pas pourquoi les nombres d'une certaine capacité numérique sont représentés par des nombres réels, plutôt que par des nombres entiers. Ce n'est pas logiquement correct. ))))
Merci, je vais utiliser int à l'ancienne et ensuite diviser par double. ;)
Merci, mais votre exemple n'a pas donné le bon résultat non plus. Dans printf, vous pouvez voir qu'aucune normalisation n'a lieu :
Désolé, j'aurais dû vérifier. Et là, nous avons "Je voulais faire les choses bien, mais il s'est avéré que c'était la même chose que d'habitude".
Résultat
Code correct
Code correct
Attention à ne pas mettre step=0.04 ;)
Attention à ne pas mettre step=0.04 ;)
Ce ne sont que des conseils pour ceux qui ne savent pas utiliser leur cerveau.))))
Désolé, j'aurais dû vérifier. C'est juste, "Je voulais bien faire, mais c'est toujours la même chose."
Résultat
Code correct.
i=NormalizeDouble(i+step, 1)Ah, merci ! Je n'y ai pas pensé moi-même. C'est justement le genre de chose qui nous aide, nous les débutants en programmation ! ;)
Je cherche desméthodes pour trier un tableau de structures. Quelqu'un a-t-il des variantes qui fonctionnent ?
https://www.mql5.com/ru/forum/170952/page134#comment_11532251
https://www.mql5.com/ru/forum/170952/page134#comment_11532251
Ça ne marche pas...