Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] O que seria necessário para esse erro não ocorrer?

Olá! Pelo que entendi, esse erro relacionado a contas que usam números de ponto flutuante acontece inevitavelmente por causa da forma como computadores "pensam" (de forma binária). E ao longo da aula o instrutor menciona que:

"Não precisa se estressar tanto com isso, um erro comum com qualquer tipo de conta que usa o número de ponto flutuante, você consegue encontrar esses tipos de erros em jogos, em telas que estão usando o número de ponto flutuante para colocar as coordenadas."

O que seria necessário para que esse erro não mais ocorresse? É uma limitação tecnológica?

1 resposta
solução!

O problema pode ser mitigado de várias formas, mas não há solução fácil. Se você lê bem inglês, pode conferir esse site: https://0.30000000000000004.com/ nele tem explicação interessante do motivo disso acontecer, é mais uma questão matemática do que tecnológica. Se computadores usassem base ternária ou até mesmo base decimal, a mesma que a nossa, o problema continuaria lá. O site também demonstra isso acontecendo em várias linguagens diferentes.

Em bancos de dados como MySQL, Oracle, PostgreSQL, por exemplo, é comum que haja tipos como o NUMERIC em que você especifica o número de algarismos máximo que aquele valor pode ter, e quantos deles são de casas decimais. Assim, você mantem uma precisão arbitrária e consegue evitar esse tipo de problema.