Arrotondamento dei numeri in MT4 tramite NormalizeDouble - pagina 10

 
Алексей Тарабанов:
Nei primi anni '80, Antonina Loseva, laureata alla scuola di programmazione di Noginsk, lavorava sotto la mia attenta guida. Ecco come ha risolto il problema dell'arrotondamento ai numeri interi: int A = double B + 0.5

Grazie per la tua storia, ora "int A = doppio B + 0,5" è risolto: int A = (int)MathCeil(doppio B);

Ma la domanda in questo caso è come tagliare senza arrotondare.

 
lilita bogachkova:

Grazie per la tua storia, ora "int A = doppio B + 0,5" è risolto: int A = (int)MathCeil(doppio B);

Ma in questo caso è una questione di come tagliare senza arrotondare.

È facile tagliare senza arrotondare, basta non arrotondare (non aumentare il doppio di 0,5 passi di arrotondamento).

Confronta la tua costruzione con la mia in termini di velocità, e la tua non è corretta, mi dispiace...

 
Dmitry Fedoseev:

DoubleToStr(0.9999,3)=1.000

Quindi, traete le vostre conclusioni.

Cosa c'entra il 3? Stiamo usando Bid e Digits.

Non so di cosa stai parlando. In un altro thread, ne ho parlato per tre pagine. Che come tagliare qui per esempio sul tuo esempio non conoscendo il numero di caratteri frazionari e hai dimostrato che il 0-e non contano e destra.

DoubleToStr(0.9999,4)

e poi modalità un carattere

 
Алексей Тарабанов:

Tagliare senza arrotondare è facile, basta non arrotondare (non aumentare il doppio di 0,5 di arrotondamento).

...

Codice?

 
Vasyl Nosal:

int A =double B

Il tuo cuore batte forte?

 
Vasyl Nosal:

Cosa c'entra il 3? Stiamo usando Bid e Digits.

Non so di cosa stai parlando. In un altro thread, ne ho parlato per tre pagine. Che come tagliare qui per esempio sul tuo esempio non conoscendo il numero di caratteri frazionari e hai dimostrato che 0-e non contano e destra.

Non so cos'hai lì. Diciamo che tronchiamo a un dato numero di caratteri.
 
Алексей Тарабанов:

int A =double B

Il tuo cuore batte forte?

Questo è già un codice?

Questo è ancora meglioNormalizeDouble(1.15-0.05,1);

:)))))))))))))))

 
Dmitry Fedoseev:
Non so di cosa stai parlando. Sembra che scartiamo fino a un certo numero di caratteri.
Noi lo facciamo. Ma convertiamo il doppio in una stringa su tutto il numero di caratteri frazionari.
 
Vasyl Nosal:

Questo è già un codice?

Questo è ancora meglioNormalizeDouble(1.15-0.05,1);

:)))))))))))))))

Sì, è divertente...
 
Vasyl Nosal:

...

DoubleToStr(0.99999,4)

e poi modalità un carattere

Che ne dite di questo?