Creo que todos estos fallos anteriores están fuera del alcance del uso práctico de esta solución para acelerar el redondeo de enteros positivos, porque poca gente necesita precisión a nivel de 16 dígitos. Y estos fallos surgen de todo tipo de desbordamientos en los niveles de puntos del propio compilador.
A100: Floor(), ceil(), round() están ahí para ese propósito - así que no hay preguntas
No te estoy prohibiendo que los uses. Puede utilizarlos. Yo mismo los utilizaré. Pero si creo un algoritmo donde la velocidad es importante, utilizaré esta variante de redondeo teniendo en cuenta todos los matices de este método. Creo que sería útil para otros programadores conocer la existencia de esta alternativa. La discusión es exactamente lo que necesitamos saber sobre los matices de este método de redondeo. Muchas gracias por ello. ¿No tengo razón?
DBL_MIN yDBL_EPSILON no funcionan: son demasiado pequeños. Quizás tenga sentido dejar 0,999999999999999999 (16 nueves - el número máximo de dígitos después del punto decimal en el doble)
Así, DBL_EPSILON tiene 16 decimales:2,2204460492503131e-016.
En tu caso, en realidad te llevas una, ya que la diferencia es sólo 1e-16, que es 2 veces menos que epsilon.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Sí, pero si:
entonces está bien.
A100:
No lo entiendo. ¿Cuál es el problema?
Queda por ver si estará bien para cualquier número x
Por supuesto que no...
Después de todo, si esto sucede:
entonces, las preguntas no son para mí ni para esta idea.
¿Cuál es el problema?
ver mi post anterior
entonces, las preguntas no son para mí, ni para esta idea.
Creo que todos estos fallos anteriores están fuera del alcance del uso práctico de esta solución para acelerar el redondeo de enteros positivos, porque poca gente necesita precisión a nivel de 16 dígitos. Y estos fallos surgen de todo tipo de desbordamientos en los niveles de puntos del propio compilador.
Floor(), ceil(), round() están ahí para ese propósito - así que no hay preguntas
No te estoy prohibiendo que los uses. Puede utilizarlos. Yo mismo los utilizaré. Pero si creo un algoritmo donde la velocidad es importante, utilizaré esta variante de redondeo teniendo en cuenta todos los matices de este método. Creo que sería útil para otros programadores conocer la existencia de esta alternativa. La discusión es exactamente lo que necesitamos saber sobre los matices de este método de redondeo. Muchas gracias por ello. ¿No tengo razón?
DBL_MIN yDBL_EPSILON no funcionan: son demasiado pequeños. Quizás tenga sentido dejar 0,999999999999999999 (16 nueves - el número máximo de dígitos después del punto decimal en el doble)
Así, DBL_EPSILON tiene 16 decimales:2,2204460492503131e-016.
En tu caso, en realidad te llevas una, ya que la diferencia es sólo 1e-16, que es 2 veces menos que epsilon.
Así que DBL_EPSILON tiene 16 decimales:2,2204460492503131e-016
Y en tu caso sí que lo consigues, ya que la diferencia es sólo de 1e-16, que es 2 veces menos que epsilon.
Sí, lo entiendo, pero no funciona. Resulta que tampoco funciona con 16 nueves (extraño, antes parecía funcionar). Sólo funciona con 15 nueves.