Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Las matemáticas. Grado 6. Libro de texto. Nikolsky S.M., Potapov M.K. Moscú: 2012. - 256 с
Redondeo.
Qué tema tan candente ha resultado ser este. MT4 parece funcionar correctamente con el redondeo.
Me refería a queNormalizeDouble(0,055,2) no redondeara el número"0,055" a "0,06", sino que lo recortara a "0,05".
Tengo problemas para entender estas funciones de MKL. Realmente no entiendo por qué "1.0015223567" debe ser redondeado usando NormalizeDouble, si todo lo que se quiere es llevar el número BORROWN al lugar correcto.
Es decir, NormalizarDoble(1,001526789, 5) daría como resultado "1,00152". No es necesario redondeara "1,00153". Debe existir la función RoundDouble para eso =)
¿Es posible? ¿O es necesario redondear todo el tiempo y obtener números erróneos?
Será mejor que te decidas ya. Es el redondeo:
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Redondear números en MT4 mediante NormalizeDouble
Roman Starinskij, 2016.01.21 10:03
Hola. ¿Puede decirme cuál es el problema?
¿Por qué la función NormalizeDouble(0.055,2) redondea el número "0.055" a "0.06"?
No es una función de redondeo de fracciones.
No es así:
Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio
Redondear números en MT4 mediante NormalizeDouble
Roman Starinskij, 2016.01.25 14:30
Qué tema tan candente ha resultado ser este. MT4 parece funcionar correctamente con el redondeo.
Me refería aNormalizeDouble(0,055,2) no para redondear el número"0,055" a "0,06", sino para recortarlo a "0,05".
Tengo problemas para entender estas funciones de MKL. No entiendo muy bien por qué hay que redondear "1,0015223567" con la función NormalizeDouble, si lo único que quieres es llevar el número DIRECTO al lugar correcto.
Es decir, NormalizarDoble(1,001526789, 5) daría como resultado "1,00152". No es necesario redondeara "1,00153". Debe existir la función RoundDouble para eso =)
¿Es posible? ¿O es necesario redondear todo el tiempo y obtener números que no quieres?
Y en aras de la experimentación:
Qué tema tan candente ha resultado ser este. MT4 parece funcionar correctamente con el redondeo.
Me refería a queNormalizeDouble(0,055,2) no redondeara el número"0,055" a "0,06", sino que lo recortara a "0,05".
Tengo problemas para entender estas funciones de MKL. No entiendo muy bien por qué hay que redondear "1,0015223567" con la función NormalizeDouble, si lo único que se quiere es llevar el número de BORRO al lugar correcto.
Es decir, NormalizarDoble(1,001526789, 5) daría como resultado "1,00152". No es necesario redondeara "1,00153". Debe existir la función RoundDouble para eso =)
¿Es posible? ¿O necesitas redondearlo todo el tiempo y obtener números que no quieres?
Si hay que recortar, se recorta; si hay que redondear, se redondea. La función NormalkizeDouble() redondea y esto es lo que más se necesita.
¿Por qué crees que debería utilizarse RoundDouble() en lugar de NormalizeDouble()? ¿Has creado este mundo? ¿Está bien que una pelota ruede y un cuadrado tenga cuatro esquinas?
Qué tema tan candente ha resultado ser este.
Esto se debe a que el autor no lee la documentación lingüística y no escucha lo que le dicen.
El siguiente comportamiento de dividir y redondear fracciones es un poco confuso.
Hay 2 ecuaciones:
0.06-0.02 = 0.03999999999999999
0.06-0.024 = 0.036
Utilizando la función recomendada NormalizeDouble, obtenemos estos resultados:
0.03999999999999999 = 0.04
0.036 = 0.04
En el primer ejemplo necesitamos realmente obtener el valor 0,04, pero en el segundo necesitamos 0,03 (así es como funciona una calculadora normal).
NormalizeDouble debería usarse porque se devuelven fracciones que no están completas, pero en el segundo caso, la función devuelve valores incorrectos, y tampoco puedes no usarla para el primer ejemplo.
El siguiente comportamiento de dividir y redondear fracciones es un poco confuso.
Hay dos ecuaciones:
0.06-0.02 = 0.03999999999999999
0.06-0.024 = 0.036
Utilizando la función recomendada NormalizeDouble, obtenemos estos resultados:
0.03999999999999999 = 0.04
0.036 = 0.04
En el primer ejemplo necesitamos realmente obtener el valor 0,04, pero en el segundo necesitamos 0,03 (así es como funciona una calculadora normal).
NormalizeDouble debería usarse porque se devuelven fracciones que no están completas, pero en el segundo caso, la función devuelve valores incorrectos, y tampoco puedes no usarla para el primer ejemplo.
Su calculadora normal no calcula correctamente, debería hacerlo:
Todo porque el tópico no lee la documentación del idioma y no escucha lo que se le dice
si el dígito N+1 < 5, entonces el dígito N se mantiene y N+1 y todos los dígitos posteriores se ponen a cero;
si N+1 dígito ≥ 5, el Nº dígito se incrementa en uno y N+1 y todos los dígitos posteriores se ponen a cero;
Lo siento, pero sigo sin entender por qué el redondeo por '2' no permite inmediatamente = 0,06000000
v1 = 0,06000000, v2 = 0,06000000
v1 = 0,06000000, v2 = 0,05000000
---
Lo siento, pero sigo sin entender por qué el redondeo por '2' no permite obtener = 0,06000000
Lo siento, pero sigo sin entender por qué el redondeo por '2' hace imposible obtener = 0,06000000
Cuando sólo se normaliza un dígito, es sencillo: 0, 1, 2, 3, 4 -> 0, y 5, 6, 7, 8, 9 -> 1.
Cuando se normalizan dos dígitos, se tienen en cuenta los números de dos cifras: 0 - 49 -> 0, y 50 - 99 -> 1. Al fin y al cabo, si hay que redondear el número 1,49 a enteros, ¿realmente hay que obtener 2, que es 51 centésimas frente a las 49 centésimas disponibles de distancia a 1?
Lo mismo con los de tres dígitos, los de cuatro dígitos, etc.