Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
A seconda dei vostri obiettivi, a volte vale la pena di passare ai numeri interi. Risparmia un sacco di nervi :-) Una volta ho avuto un compito, in cui dovevo segnare con precisione molti-molti livelli, all'inizio ho lottato con il doppio, e poi ho convertito tutto in punti interi da 0 e tutto è diventato facile, semplice e senza errori.
Non è necessario usare l'arrotondamento a meno che il compito non lo richieda.
Questo è il punto: i compiti sono diversi :-)
Se usateMathFloor o MathCeil per l'arrotondamento, dovete normalizzare il risultato originale alla precisione corretta.
Perché durante il calcolo, invece di un numero intero, si può ottenere un numero frazionario, e a causa di questa "coda" del numero viene arrotondato in modo errato, il risultato è errato.
Per esempio:
Print (DoubleToStr(1156.12/point, 15));
Print (NormalizeDouble(1156.12/point, _Digits));
ora proviamo ad arrotondare conMathFloor
Print (DoubleToStr(MathFloor(1156.12/point), 15));
Print (MathFloor(NormalizeDouble(1156.12/point, _Digits)));
Se normalizzo il numero a 1.05 - si normalizzerà a 1.1, che in linea di principionon èquello di cui ho bisogno usandoMathFloor :-)
Perché non usereiaffatto MathFloor.
Ma il problema è diverso.
Но задача то другая.
Perché è diverso? Hai detto che hai bisogno di arrotondare per difetto - MathFloor fa esattamente questo
Perché è diverso? Hai detto che hai bisogno di arrotondare per difetto - questo è ciò che fa MathFloor.
Sì!!! ma se faccio una normalizzazione arrotonderà i conti per difetto eMathFloor non avrà senso
l'esempio precedente con il numero 1156.12, questo numero è memorizzato come 1156.11999999999999891
Cioè, se si prova ad arrotondare al centesimo, si ottiene 1156,11 invece di 1156,12, che è la "particolarità" che vi ha fatto scervellare.
l'esempio precedente con il numero 1156.12, questo numero è memorizzato come 1156.11999999999999891
cioè, se cercate di arrotondare al centesimo, otterrete 1156,11 invece di 1156,12 - questa è la "particolarità" del vostro problema.
Sì :-) Grazie.