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
@fxsaber NormalizeDouble redondea a decimales, que es diferente de redondear a dígitos significativos. SF es 1-15 o 17 inclusive. No hay 0.
No lo he entendido.
NormalizarDoble(12.345, 2) -> 12.35
RoundToSignificantDigits(12.345, 2) -> 12
EqualDouble() se utiliza para comparar cantidades sospechosamente iguales como 1.123456 y 1.23456789
también se pueden utilizar números muy grandes como 1234567891234.1234 y 1234567891234.1255
sin conocer los dígitos decimales de los números que se comparan entre sí.https://www.wikiwand.com/en/Significant_figures
https://chem.libretexts.org/Bookshelves/General_Chemistry/Book%3A_Chem1_(Inferior)/04%3A_Las_Básicas_de_la_Química/4.06%3A_Cifras_y_Redondeos_Significativos
https://www.calculatorsoup.com/calculators/math/significant-figures-rounding.php
Foro sobre trading, sistemas automatizados de trading y prueba de estrategias de trading
Bibliotecas: Math Utils
fxsaber, 2023.02.21 21:01
Necesitas aprender a hacer mediciones de rendimiento adecuadas.
21 veces más rápido.
@fxsaber ¡No lo comprobé después de ti, ayer!
Pero, cuando volví hoy, me encontré con que la evaluación comparativa mal. Usted acaba de evaluación comparativa del operador modulo %, pero con algunas optimizaciones internas del compilador que tiene esa diferencia poco realista.
Usé este simple benchmark para volver a comprobarlo. Ambas funciones son suficientemente rápidas. Así que, ¡no hay cambio!
¡@fxsaber No he comprobado después de ti, ayer!
Pero, cuando volví hoy, me encontré con que la evaluación comparativa mal. Usted acaba de evaluación comparativa del operador modulo %, pero con algunas optimizaciones internas del compilador que tiene esa diferencia poco realista.
Usé este simple benchmark para volver a comprobarlo. Ambas funciones son suficientemente rápidas. Así que, ¡no hay cambio!
Estás sacando conclusiones erróneas.
// 200000000.0significa que las llamadas a la función no fueron optimizadas por el compilador. No sé por qué manipulas el 3er argumento, déjalo como parámetro por defecto y vuelve a probar.
Utiliza un bucle simple.
significa que las llamadas a la función no fueron optimizadas por el compilador. No sé por qué manipulas el 3er argumento, déjalo como parámetro por defecto y vuelve a probar.
Utiliza un bucle simple.
Desafortunadamente, no entiendes lo que estás midiendo.
Desactiva las optimizaciones del compilador y prueba de nuevo.
Entonces, ¿por qué desactivar? Escribo la función y luego dependo del compilador optimizador.
Si no, programaría en ensamblador como en los viejos tiempos :-)