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
Hizo funciones para redondear el fondo y la parte superior alguna vez
Podría ayudar a alguien
Hizo funciones para redondear el fondo y la parte superior alguna vez
Podría ayudar a alguien
intenta obtener un resultado de0,9999999999999999999
X = 0.99999999999999999
10*X = 10*0.99999999999999999
10*X-X = 10*0,9999999999999-0,99999999999
9*X = 9*0.99999999999999999
obtenemos 9*X = 9 o X es igual a 1 (uno)
v1 = (1/3) = 0,33333333 | v2 = 3*(1/3) = 1,00000000
o 0,9999999999999 = 1,0
v1 (1.00000000) >= 1.0
Gracias a todos por este hilo tan útil.
He optado por la solución de redondear 1 dígito más medianteNormalizeDouble, y luego recortar el último dígito. Hasta ahora, es completamente adecuado.
De nuevo sobre el redondeo......
Por favor, asesórese sobre la situación (no tire tomates, soy humanitario),
existe dicha variable:
double delta=NormalizeDouble(new_lot-sum_lots,Lots_Digits);
if(delta>0) delta-=OrderLots();
if(delta<0) delta+=OrderLots();
El delta está originalmente normalizado,
Probablemente, OrderLots debería devolver dubs normalizados,
pero de alguna manera a veces en raras ocasiones obtengo números como 2.775557561562891e-17
Así que es casi cero pero no cero.......
primera pregunta: ¿es esto normal?
segunda pregunta - según entiendo me bastará con hacer la segunda normalización para evitar las colas?
Tercera pregunta (siento que no la entenderé de todos modos, pero lo preguntaré igualmente):
¿puede la suma de dos números normalizados dar números no normalizados?
P.D. Pido disculpas por volver a sacar el tema, pero es que no tengo fuerzas para releerlo todo de nuevo
De nuevo sobre el redondeo......
Por favor, asesórese sobre la situación (no tire tomates, soy humanitario),
existe dicha variable:
double delta=NormalizeDouble(new_lot-sum_lots,Lots_Digits);
if(delta>0) delta-=OrderLots();
if(delta<0) delta+=OrderLots();
El delta está originalmente normalizado,
Probablemente, OrderLots debería devolver dubs normalizados,
pero de alguna manera a veces en raras ocasiones obtengo números como 2.775557561562891e-17
Así que es casi cero pero no cero.......
primera pregunta: ¿es esto normal?
segunda pregunta - según entiendo me bastará con hacer la segunda normalización para evitar las colas?
Tercera pregunta (siento que no la entenderé de todos modos, pero lo preguntaré igualmente):
¿puede la suma de dos números normalizados dar números no normalizados?
P.D. Perdonad que lo saque de nuevo, pero es que no tengo energía para releerlo todo
P.D. Pido disculpas por volver a sacar el tema, pero no tengo energía para volver a hablar de todo esto
Es mejor que lo compruebes tú mismo con diferentes ejemplos, te dará una idea.
Lo único es que lo estoy haciendo mal:
sino así.
Para los números dobles. No sé si realmente importa, pero nunca he encontrado un error con mi variante (intento comparar sólo los mismos tipos de variables).
No sé si realmente importa, pero nunca he encontrado un error con mi versión (sólo intento comparar los mismos tipos de variables).