Comment connaître la valeur réelle d'une variable de type double? La variable elle-même est formée à partir d'une chaîne de texte, mais elle est soumise à une procédure d'arrondi.
-Aleks-: 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.
Alexey Kozitsyn: Vous voulez comparer plusieurs valeurs de type double?
Pas vraiment... on part du principe que les nombres n'ont pas toujours une valeur entière de 4=3,9999999999999999999 et qu'une inexactitude se forme après les opérations mathématiques après l'arrondi.
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 :
-Aleks-: 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,
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 - décrit, oui - je l'utilise - la question est juste de savoir comment ne pas passer par Print et en général la chaîne pour obtenir des données pour l'analyse :)
-Aleks-: 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.
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