Questions des débutants MQL5 MT5 MetaTrader 5 - page 474
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Ce n'est pas tout... https://www.mql5.com/ru/forum/66827
Comment connaître la valeur réelle d'une variable de type double? Le problème est que des milliers de chiffres sont parfois rejetés par l'impression - la variable elle-même est formée à partir d'une chaîne de texte, mais elle est soumise à une procédure d'arrondi.
Ahem. Pourquoi en avez-vous besoin ?
Pour détecter une erreur dans le calcul :)
Vous voulez comparer plusieurs valeurs de type double?
Pouvez-vous envoyer des messages électroniques à partir du terminal Metatrader 4 de manière à ce qu'une capture d'écran du graphique actuel soit prise et placée au milieu du message. Exemple :
Il y a eu un signal d'achat sur EurUsd
<скриншот09122015_eurusd.png>
Informations supplémentaires sur l'ouverture.
Dites-moi comment mettre cela en œuvre ? Il existe peut-être un exemple ou quelque chose de similaire qui peut être refait. Merci !Pas tout à fait... il y a une hypothèse selon laquelle les nombres n'ont pas toujours une valeur entière de 4=3.9999999999999999999 et après avoir fait le calcul, vous obtenez une inexactitude après avoir arrondi.
Même si des imprécisions apparaissent, utilisez NormalizeDouble(). Définissez la précision que vous souhaitez pour vos calculs. C'est à cela que sert cette fonction.
L'exemple qui y figure semble décrire votre cas :
Vous devez savoir que le nombre normalisé, lorsqu'il est affiché dans le Journal à l'aide de la fonction Print(), peut contenir plus de décimales que prévu. Par exemple,
DoubleToString(a,8)=76.67100000
Print(76.671)=76.67100000000001
Même si des imprécisions apparaissent, utilisez NormalizeDouble(). Définissez la précision que vous souhaitez pour vos calculs. C'est à cela que sert cette fonction.
L'exemple qui y figure semble décrire votre cas :
Oui - il est décrit, oui - je l'utilise - la question est de savoir comment ne pas passer par Print et string en général pour obtenir des données à analyser :)
En utilisant le même NormalizeDouble(). Vous obtenez un numéro de type double. Normalisé. Il suffit d'utiliser la fonction Print() pour obtenir une sortie comme celle-ci.
Il est écrit ici comment faire la comparaison correctement : https://www.mql5.com/ru/docs/basis/types/double