
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
Matematica. Grado 6. Libro di testo. Nikolsky S.M., Potapov M.K. Mosca: 2012. - 256 с
Arrotondamento.
Che argomento acceso è diventato questo. MT4 sembra funzionare correttamente con l'arrotondamento.
Intendevo cheNormalizeDouble(0.055,2) non arrotonda il numero"0.055" a "0.06", ma lo rifila a "0.05".
Ho problemi a capire queste funzioni MKL. Non capisco davvero perché i prezzi "1.0015223567" dovrebbero essere arrotondati usando la funzione NormalizeDouble, se tutto ciò che si vuole è portare il numero DIRETTO alla cifra giusta.
Cioè, per NormalizeDouble(1.001526789, 5) risulterebbe "1.00152". Non ha bisogno di essere arrotondatoa "1,00153". Ci deve essere la funzione RoundDouble per questo =)
È possibile? O è necessario arrotondare sempre e ottenere numeri sbagliati?
È meglio che ti decida già. È l'arrotondamento:
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Arrotondamento dei numeri in MT4 tramite NormalizeDouble
Roman Starinskij, 2016.01.21 10:03
Salve. Potete dirmi qual è il problema.
Perché la funzione NormalizeDouble(0.055,2) arrotonda il numero "0.055" a "0.06"?
Non è una funzione di arrotondamento delle frazioni.
Non lo fa:
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Arrotondamento dei numeri in MT4 tramite NormalizeDouble
Roman Starinskij, 2016.01.25 14:30
Che argomento acceso è diventato questo. MT4 sembra funzionare correttamente con l'arrotondamento.
IntendevoNormalizeDouble(0.055,2) non per arrotondare il numero"0.055" a "0.06", ma per tagliarlo a "0.05".
Ho problemi a capire queste funzioni MKL. Non capisco davvero perché "1.0015223567" dovrebbe essere arrotondato con la funzione NormalizeDouble, se tutto ciò che si vuole è portare il numero BORROWN al posto giusto.
Cioè, per NormalizeDouble(1.001526789, 5) risulterebbe "1.00152". Non ha bisogno di essere arrotondatoa "1,00153". Ci deve essere la funzione RoundDouble per questo =)
È possibile? O è necessario arrotondare sempre e ottenere numeri che non si vogliono?
E per il gusto di sperimentare:
Che argomento acceso è diventato questo. MT4 sembra funzionare correttamente con l'arrotondamento.
Intendevo cheNormalizeDouble(0.055,2) non arrotonda il numero"0.055" a "0.06", ma lo rifila a "0.05".
Ho problemi a capire queste funzioni MKL. Non capisco davvero perché i prezzi "1.0015223567" dovrebbero essere arrotondati usando la funzione NormalizeDouble, se tutto ciò che si vuole è portare il numero DIRETTO alla cifra giusta.
Cioè, per NormalizeDouble(1.001526789, 5) risulterebbe "1.00152". Non ha bisogno di essere arrotondatoa "1,00153". Ci deve essere la funzione RoundDouble per questo =)
È possibile? O avete bisogno di arrotondare sempre e ottenere numeri che non volete?
Se hai bisogno di tagliare, allora taglia; se hai bisogno di arrotondare, allora arrotonda. La funzione NormalkizeDouble() arrotonda e questo è quello che vi serve più spesso.
Perché pensi che RoundDouble() dovrebbe essere usato al posto di NormalizeDouble()? Hai creato tu questo mondo? Va bene che una palla stia rotolando e che un quadrato abbia quattro angoli?
Che argomento acceso è diventato questo.
Questo perché l'autore non legge la documentazione linguistica e non ascolta ciò che gli viene detto.
Il seguente comportamento di divisione e arrotondamento delle frazioni è un po' poco chiaro.
Ci sono 2 equazioni:
0.06-0.02 = 0.03999999999999999
0.06-0.024 = 0.036
Usando la funzione raccomandata NormalizeDouble, otteniamo questi risultati:
0.03999999999999999 = 0.04
0.036 = 0.04
Nel primo esempio abbiamo davvero bisogno di ottenere il valore 0,04, ma nel secondo abbiamo bisogno di 0,03 (è così che funziona una normale calcolatrice).
NormalizeDouble dovrebbe essere usato perché vengono restituite frazioni che non sono complete, ma nel secondo caso, la funzione restituisce valori errati, e non si può non usarla nemmeno per il primo esempio.
Il seguente comportamento di divisione e arrotondamento delle frazioni è un po' poco chiaro.
Ci sono due equazioni:
0.06-0.02 = 0.03999999999999999
0.06-0.024 = 0.036
Usando la funzione raccomandata NormalizeDouble, otteniamo questi risultati:
0.03999999999999999 = 0.04
0.036 = 0.04
Nel primo esempio abbiamo davvero bisogno di ottenere il valore 0,04, ma nel secondo abbiamo bisogno di 0,03 (è così che funziona una normale calcolatrice).
NormalizeDouble dovrebbe essere usato perché vengono restituite frazioni che non sono complete, ma nel secondo caso, la funzione restituisce valori errati, e non si può non usarla nemmeno per il primo esempio.
La vostra calcolatrice normale non calcola correttamente, dovrebbe:
Tutto perché il topicstarter non legge la documentazione della lingua e non ascolta ciò che gli viene detto
se N+1 cifra < 5, allora la Nesima cifra viene mantenuta e N+1 e tutte le cifre successive vengono azzerate;
se N+1 cifra ≥ 5, l'ennesima cifra viene incrementata di uno e N+1 e tutte le cifre successive vengono azzerate;
Scusate, ma continuo a non capire perché l'arrotondamento per '2' non permette immediatamente = 0,06000000
v1 = 0,06000000, v2 = 0,06000000
v1 = 0,06000000, v2 = 0,05000000
---
Mi dispiace, ma continuo a non capire perché l'arrotondamento per '2' non permette di ottenere = 0,06000000
Mi dispiace, ma ancora non capisco perché l'arrotondamento per '2' rende impossibile ottenere = 0,06000000
Quando una sola cifra è normalizzata, è semplice: 0, 1, 2, 3, 4 -> 0, e 5, 6, 7, 8, 9 -> 1.
Quando si normalizzano due cifre, vengono presi in considerazione i numeri a due cifre: 0 - 49 -> 0, e 50 - 99 -> 1. Dopo tutto, se il numero 1,49 deve essere arrotondato a numeri interi, dobbiamo davvero ottenere 2, che è 51 centesimi contro i 49 centesimi disponibili per 1?
Lo stesso vale per le tre cifre, le quattro cifre, ecc.