Executando verificação de segurança...
1
Carregando publicação patrocinada...
3

Tem sim, leia mais abaixo outra resposta que e o kht e eu escrevemos. Certamente ele tem um meio de não cair nessa armadilha, qualquer libguagem tem, e a maioria tem algo pronto pelo menos na biblioteca padrão ou tem alguma externa. Algumas linguagens adotam um padrão diferente que pode ajudar ou adotam alguma forma para tentar compensar, mas uma hora estoura, e a pessoa fica sem saber.

Não vi detalhes mas pode ser que o Delphi adote um ponto flutuante decimal em vez de bunário por padrão, só isso. Mas o mais provável é que o site engane todo mundo fazendo uma análise muito superficial. Algumas linguagens tem uma compensação em certos pontos, como a função de impressão por exemplo, mas não para cálculos.

Até fiquei curioso e vou ver se aina acho que programador de Deplhi que explique o que acontece ali com certeza.

Conheço bem C# e o segundo exemplo acontece só na impressão, em qualquer situação que exija exatidão tem que usar o primeiro ou terceiro.

Conclusão, esse site é um perigo, só perpetua o mito. Como muita coisa na internet.

Como visto na Internet - logo

2

Pois é, tem linguagens que quando vc imprime o valor, ele acaba sendo truncado/arredondado e isso acaba mascarando o problema (e dando a falsa impressão de que ele "não existe").

É o que aconteceu neste exemplo que fiz em Python: o problema só apareceu quando fui usar o valor, seja fazendo cálculos, ou comparando com outro número. E para descobrir o que de fato acontece, precisei imprimir mais casas decimais.

Esse é o perigo de se fazer um teste simples e achar que tudo bem só porque "funcionou". O mais correto é consultar a documentação da linguagem: se lá é dito que ela usa números de ponto flutuante binários (e principalmente se citar a norma IEEE 754), então os problemas já citados podem acontecer sim. Pode não ter acontecido em um teste específico (ou o teste foi mal feito porque usou uma situação na qual a linguagem mascarou o erro), mas não quer dizer que nunca vai acontecer.

1

Maniero, você me salva mt lá no SO kkkkkkkkk, enfim, o que eu quis dizer é que não há necessidade de utilizar uma biblioteca como a Decimal do js, pois o Delphi já se encarrega disso.

1

Sim pode ser sim, mas eu só vou confirmar isso com uma informação que demonstre claramente, e não seja só impressão, como acontece com o C#.

Obrigado.