📽️ Floating Point Numbers - Computerphile
Link: https://www.youtube.com/watch?v=PZRI1IfStY0
🎯 Resumo
Resumo
O vídeo explica que computadores cometem erros de precisão matemática, como o clássico 0.1 + 0.2 não resultar em 0.3, devido ao sistema de ponto flutuante. Como os computadores operam em base 2 (binária), muitas frações decimais tornam-se dízimas infinitas que precisam ser truncadas por falta de espaço de armazenamento. Embora essa imprecisão seja irrelevante para tarefas como gráficos 3D, ela é perigosa em cálculos financeiros. Para evitar erros com dinheiro, a solução é armazenar valores como números inteiros (ex: centavos) em vez de decimais.
📝 Notas & Insights
- Analogia com a Notação Científica: O sistema de ponto flutuante é essencialmente uma adaptação da notação científica para o ambiente binário, priorizando a velocidade e a eficiência no processamento de magnitudes extremas.
- Limitação da Base 2: A causa raiz dos erros é a tradução de frações decimais (como 0.1) para o sistema binário. Diferente da base 10, onde o 0.1 é finito, em binário ele se torna uma dízima periódica infinita.
- Perda de Precisão: Computadores de 32 bits (e até 64 bits) possuem um limite fixo para armazenar dígitos. Ao truncar a dízima, o computador descarta a recursão, gerando erros de arredondamento cumulativos.
- Aplicação Prática e Erros: O erro é negligenciável em gráficos 3D, onde pequenas frações de pixel não alteram o resultado visual, mas é inaceitável em sistemas financeiros, onde a precisão absoluta é mandatória.
- Boas Práticas de Programação: Para evitar o problema com dinheiro, o vídeo sugere utilizar bibliotecas de tipo decimal ou representar valores monetários inteiramente em centavos/unidades menores (inteiros), convertendo para exibição apenas no final.