É possível obter um valor "exato"? - página 6

 
abolk:

Para resolver este problema, 0,09*5 tem que ser =0,45, não =0,449999999999999999999

e se ele não existir, o problema é insolúvel.

0.09*5=0.45 )

você não sabe como contar?)

 
sanyooooook:

0.09*5=0.45 )

Você não sabe como contar, sabe?)

Isso mesmo, dei um exemplo que conta 0,44 ao invés de 0,45 por causa de "seu" trabalho na MQL. Não estou familiarizado com o idioma, mas é estranho, porque um grande número é cortado, quero dizer, porque, quando ultrapassa o limite, é arredondado mas não é cortado. Seria ótimo se o método de "corte exato de cordas", talvez o que citei acima, estivesse em MQL para uso. :)
 
WePlexus:
É verdade, o exemplo foi dado de que conta 0,44 ao invés de 0,45 por causa de "seu" trabalho em MQL. Não conheço bem o idioma, mas é estranho porque um número grande é cortado, quer dizer, porque quando o número ultrapassa o limite, ele é arredondado em vez de ser cortado. Seria ótimo se o método de "corte exato de cordas", talvez o que citei acima, estivesse em MQL para uso. :)
porque é comum em matemática que, se você quiser remover o número de casas decimais, então o valor é arredondado.
 
sanyooooook:
porque é comum em matemática que se o número de dígitos após o ponto decimal deve ser removido, o valor é arredondado.
miudro
 
Obrigado por sua ajuda.
 
sempre
 
WePlexus:
Não conheço bem o idioma, mas é estranho porque um número grande é cortado, quer dizer, porque quando o número ultrapassa o limite, ele é arredondado em vez de ser cortado. Seria ótimo se o método de "corte exato de cordas", talvez o que citei acima, estivesse em MQL para uso. :)
Foi assim que entendi como o "corte exato" poderia ser útil. Bem, além de um sentimento de satisfação e orgulho legítimo de um problema resolvido :).
 
O arredondamento para cima é mais fácil
 
abolk:

este é o número máximo em que a normalização ocorre:

Se você tomar mais um 9, ele se normaliza para 0,02.

Mas minha função é fazer o trabalho:

Normalize ("0.01999999999999999999999999999999", 6)

Produz 0,019999. Então você pode converter o número para o tipo certo e fazer as contas com ele.

Se você passar um número para a função sem aspas, o resultado será 0,02.

 
WePlexus:

Há várias maneiras de resolver seu problema - cada uma delas tem suas vantagens e desvantagens - em termos de precisão e rapidez de obter o resultado.

Trabalhar com números flutuantes tem suas próprias peculiaridades -- você tem que entendê-las -- e para entender essas peculiaridades + para seu problema -- você tem que procurar uma solução.