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
Si es para comparar, entonces podrías crear fácilmente tu propia función:
Es sólo una idea.
Si es para comparar, entonces podrías crear fácilmente tu propia función:
Es sólo una idea.
Es una buena idea, gracias por ella :-)
El uso de "Punto" o "Punto/2.0" no es un valor de diferencia muy bueno, IMO. El error de redondeo introducido por NormalizeDouble (que me quemó hoy), es sin duda mucho menor que 8 dígitos, más bien 15 dígitos.
Teniendo en cuenta los consejos anteriores, y hecho algunos cambios y poner juntos la siguiente rutina que parece funcionar bien (incluso utilizando el "diff" a 15 decimales), aunque no ha sido rigurosamente probado todavía:
Here is a check of the obvious:
Aquí hay otra posible rutina que puede comparar, pero también puede normalizar internamente A y/o B, y también relajará la diferencia de comparación (de A-B o B-A) a un número mayor basado en "dígitos". Dudo que esta rutina sea necesaria en comparación con la simple "AvsB" de arriba, pero se ofrece para su uso como se desee:
El uso de "Punto" o "Punto/2.0" no es un valor de diferencia muy bueno, IMO. El error de redondeo introducido por NormalizeDouble (que me quemó hoy), es sin duda mucho menor que 8 dígitos, más bien 15 dígitos.
Usted quiere el valor más grande que no puede ser considerado como un error de redondeo o, equivalentemente, el valor más pequeño que no puede ser considerado como un cambio de precio. Dado que los precios sólo pueden cambiar por un múltiplo de punto, punto/2 es justo eso.
El valor doble del corredor podría estar en cualquier lugar desde 1,23457500000000 hasta 1,234584999999999 y seguir considerándose el mismo precio de 1,23458.
Si hubieras utilizado esto, no habrías tenido el problema:
if (a > b)
if (a >= b)
if (a != b)
¿debemos evitar el uso de normalisedouble?
o tal vez... se me ocurre que podemos usarla función Math Round
ex . double x= (MathRound( 1.37883 * 100000)) / 100000 ;
así podemos hacer la función
*Agita su corbata en posición con dos dedos* Sólo usa normalizeDouble en cálculos que involucren un valor doble, no en cualquier lugar donde haya un doble.
¿debemos evitar el uso de normalisedouble?
o tal vez... se me ocurre que podemos usar la función MathRound
ex . double x= (MathRound( 1.37883 * 100000)) / 100000 ;
Usted todavía termina con un doble y todavía la posibilidad de precio != precio
He llegado a esta solución que convierte los dobles en ints para poder comparar los dobles . . .
de modo que . . .
nunca sea cierto.