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
En fonction de vos objectifs, il est parfois utile de passer aux chiffres entiers. Cela permet d'économiser beaucoup de nerfs :-) Une fois, j'ai eu une tâche, où je devais marquer précisément plusieurs niveaux, au début j'ai eu du mal avec le double, et puis j'ai tout converti en points entiers à partir de 0 et tout est devenu facile, simple et sans erreur.
Vous n'avez pas besoin d'utiliser les arrondis, sauf si la tâche l'exige.
C'est ça le problème : les tâches sont différentes :-)
Si vous utilisezMathFloor ou MathCeil pour l'arrondi, vous devez normaliser le résultat original à la précision correcte.
En effet, lors d'un calcul, au lieu d'un nombre entier, vous pouvez obtenir un nombre fractionnaire, et à cause de cette "queue" du nombre est mal arrondie, le résultat est incorrect.
Par exemple :
Print (DoubleToStr(1156.12/point, 15));
Print (NormalizeDouble(1156.12/point, _Digits));
essayons maintenant d'arrondir avecMathFloor
Print (DoubleToStr(MathFloor(1156.12/point), 15));
Print (MathFloor(NormalizeDouble(1156.12/point, _Digits)));
Si je normalise le nombre à 1,05 - il se normalisera à 1,1, ce qui en principen' estpas ce dont j'ai besoin en utilisantMathFloor :-)
Car je n'utiliserais pasdu tout MathFloor.
Mais le problème est différent.
Но задача то другая.
Pourquoi est-ce différent ? Vous avez dit que vous aviez besoin d'arrondir à l'inférieur - MathFloor fait exactement cela.
Pourquoi est-ce différent ? Vous avez dit que vous deviez arrondir à l'inférieur - c'est ce que fait MathFloor.
oui !!! mais si je fais une normalisation, cela va arrondir les maths à l'inférieur etMathFloor n'aura plus de sens.
l'exemple ci-dessus avec le nombre 1156.12, ce nombre est stocké en mémoire comme 1156.11999999999999891
c'est-à-dire que si vous essayez de l'arrondir au centième, vous obtenez 1156,11 au lieu de 1156,12, ce qui est la "particularité" qui vous a fait vous creuser la tête.
l'exemple ci-dessus avec le nombre 1156.12, ce nombre est stocké en mémoire comme 1156.11999999999999891
c'est-à-dire que si vous essayez d'arrondir au centième, vous obtiendrez 1156.11 au lieu de 1156.12 - c'est la "particularité" de votre problème.
Oui :-) Merci.