Obtenir le nombre de décimales de n'importe quel nombre (pas seulement les guillemets) en contournant Digits() dans MQL4 et MQL5 - page 7
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
d'après un article sur les hubs: https://habr.com/company/xakep/blog/257897/
pas vraiment testé, mais cela semble fonctionner
d'après un article sur les hubs: https://habr.com/company/xakep/blog/257897/
pas vraiment testé, mais cela semble fonctionner
S'il donne le résultat correct de 0,07, alors il fonctionne correctement.
S'il donne le résultat correct de 0,07, alors il fonctionne correctement.
ne fonctionne pas ((((
ne fonctionne pas ((((
Et aucun algorithme ne fonctionnera...
Et aucun algorithme ne fonctionnera...
sera, mais le problème est dans la précision donnée et dans l'opportunité de grands coûts de calcul, le nombre de double précision peut être recalculé dans n'importe quel format :±sign - (1+mantisse/252) × 2 ordre- 1023
Il est facile d'extraire la mantisse et l'ordre, mais il n'est pas intéressant de résoudre ce problème directement.
sera, mais le problème est dans la précision donnée et dans l'opportunité de grands coûts de calcul, le nombre de double précision peut être recalculé dans n'importe quel format :±sign - (1+mantisse/252) × 2 ordre- 1023
Il est facile d'isoler la mantisse et l'ordre, mais il n'est pas intéressant de résoudre ce problème de manière frontale
Si l'exactitude est donnée, alors toute cette histoire n'a aucun sens. J'ai déjà donné un exemple, 0,07 a deux décimales. Mais si vous essayez de calculer le nombre de chiffres de façon programmatique, vous obtiendrez treize... Et 0,07 n'est pas le résultat de calculs, mais est entré manuellement, même pas par le biais d'une variable.
Il y a aussi cette option :
Reprenez vos esprits. C'est un non-sens qui ne devrait même pas être discuté sérieusement.
L'auteur a tout simplement une incompréhension totale du fonctionnement interne des doubles variables.
О !
Je n'ai pas prétendu tout savoir, dis-moi ce qui ne va pas ou montre-moi ta version.
Vous souhaitez connaître le nombre de décimales de chaque variable de type double définie dans votre programme. C'est une absurdité. Toutes les variables de type double ont la même représentation. Ils sont représentés par Float - virgule flottante. Parfois le point est à gauche, parfois à droite - cela dépend de la valeur du nombre. Un million et un millionième sont représentés avec une précision différente.
Il existe également une telle variante :
Non, ça ne marchera pas, je l'ai fait hier par conversion de type, voici le script, votre exemple et le mien :
les résultats :
2018.11.13 01:49:16.131 tst (EURUSD,M30) 1. DoubleToDigits() = 11
2018.11.13 01:49:16.131 tst (EURUSD,M30) 1. Digit() = 0
2018.11.13 01:49:16.131 tst (EURUSD,M30) 2. DoubleToDigits() = 3
2018.11.13 01:49:16.131 tst (EURUSD,M30) 2. Digit() = 3
vous pouvez googlerFP-Printing-PLDI96.pdf, mais je doute que quelqu'un fasse tout selon l'algorithme