Arredondamento de números em MT4 via NormalizeDouble - página 10

 
Алексей Тарабанов:
No início dos anos 80, Antonina Loseva, graduada da escola de programação de Noginsk, estava trabalhando sob minha cuidadosa orientação. Eis como ela resolveu o problema do arredondamento para inteiros: int A = duplo B + 0,5

Obrigado por sua história, agora "int A = duplo B + 0,5" está resolvido: int A = (int)MathCeil(duplo B);

Mas a questão, neste caso, é como cortar sem arredondamento.

 
lilita bogachkova:

Obrigado por sua história, agora "int A = duplo B + 0,5" está resolvido: int A = (int)MathCeil(duplo B);

Mas, neste caso, é uma questão de como cortar sem arredondamento.

É fácil de cortar sem arredondamento, basta não arredondar (não aumentar o dobro por 0,5 etapa de arredondamento).

Compare sua construção com a minha em termos de velocidade, e a sua está incorreta, desculpe...

 
Dmitry Fedoseev:

DoubleToStr(0.9999,3)=1.000

Portanto, tire suas conclusões.

O que 3 tem a ver com isso? Estamos usando Licitações e Dígitos.

Eu não sei do que você está falando. Em outro tópico, eu conversei sobre isso durante três páginas. Como cortar aqui, por exemplo, no seu exemplo sem saber o número de caracteres fracionários e você provou que 0 - e não contar e acertar.

DoubleToStr(0.9999,4)

e depois Mode um personagem

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

Cortar sem arredondamento é fácil, basta não arredondar (não aumentar o dobro por 0,5 etapa de arredondamento).

...

Código?

 
Vasyl Nosal:

int A =double B

Seu coração está batendo?

 
Vasyl Nosal:

O que 3 tem a ver com isso? Estamos usando Licitações e Dígitos.

Eu não sei do que você está falando. Em outro tópico, eu conversei sobre isso durante três páginas. Como cortar aqui, por exemplo, no seu exemplo sem saber o número de caracteres fracionários e você provou que 0 - e não contar e acertar.

Eu não sei o que você tem aí. Nós meio que truncamos para um determinado número de caracteres.
 
Алексей Тарабанов:

int A =double B

Seu coração está batendo?

Este código já está em vigor?

Isto é ainda melhorNormalizeDuplo(1.15-0.05,1);

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

 
Dmitry Fedoseev:
Não sei sobre o que você está falando. Parecemos descartar até um determinado número de caracteres.
Nós fazemos. Mas nós convertemos o duplo em um fio sobre todo o número de caracteres fracionários.
 
Vasyl Nosal:

Este código já está em vigor?

Isto é ainda melhorNormalizeDuplo(1.15-0.05,1);

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

Sim, é divertido...
 
Vasyl Nosal:

...

DoubleToStr(0.99999,4)

e depois Mode um personagem

Que tal isso?