Redondear números en MT4 mediante NormalizeDouble - página 10

 
Алексей Тарабанов:
A principios de los años 80, Antonina Loseva, graduada en la escuela de programación de Noginsk, trabajaba bajo mi atenta dirección. Así es como resolvió el problema del redondeo a enteros: int A = double B + 0,5

Gracias por tu relato, ahora "int A = double B + 0,5" está resuelto: int A = (int)MathCeil(double B);

Pero la cuestión en este caso es cómo cortar sin redondear.

 
lilita bogachkova:

Gracias por tu relato, ahora "int A = double B + 0,5" está resuelto: int A = (int)MathCeil(double B);

Pero en este caso se trata de cómo cortar sin redondear.

Es fácil cortar sin redondear, simplemente no redondear (no aumentar el doble por 0,5 paso de redondeo).

Compara tu construcción con la mía en términos de velocidad, y la tuya es incorrecta, lo siento...

 
Dmitry Fedoseev:

DoubleToStr(0.9999,3)=1.000

Por lo tanto, saque sus conclusiones.

¿Qué tiene que ver el 3 con esto? Estamos usando Bid y Digits.

No sé de qué estás hablando. En otro hilo, hablé de ello durante tres páginas. Que la forma de cortar aquí, por ejemplo, en su ejemplo sin saber el número de caracteres fraccionarios y demostró que 0-y no cuentan y derecho.

DoubleToStr(0.9999,4)

y luego el modo un carácter

 
Алексей Тарабанов:

Recortar sin redondear es fácil, simplemente no redondear (no aumentar el doble en 0,5 paso de redondeo).

...

¿Código?

 
Vasyl Nosal:

int A =double B

¿Te late el corazón?

 
Vasyl Nosal:

¿Qué tiene que ver el 3 con esto? Estamos usando Bid y Digits.

No sé de qué estás hablando. En otro hilo, hablé de ello durante tres páginas. Que cómo cortar aquí por ejemplo en su ejemplo sin saber el número de caracteres fraccionarios y demostró que el 0-y no cuentan y derecho.

No sé qué tienes ahí. Truncamos hasta un número determinado de caracteres.
 
Алексей Тарабанов:

int A =double B

¿Te late el corazón?

¿Este código ya existe?

Esto es aún mejorNormalizarDoble(1,15-0,05,1);

:)))))))))))))))

 
Dmitry Fedoseev:
No sé de qué estás hablando. Parece que descartamos hasta un número determinado de caracteres.
Lo hacemos. Pero convertimos el doble en una cadena sobre el número entero de caracteres fraccionarios.
 
Vasyl Nosal:

¿Este código ya existe?

Esto es aún mejorNormalizarDoble(1,15-0,05,1);

:)))))))))))))))

Sí, es divertido...
 
Vasyl Nosal:

...

DoubleToStr(0.99999,4)

y luego el modo un carácter

¿Qué te parece esto?