Como evitar erros de ponto flutuante?
Eu estava tentando escrever uma função para aproximar as raízes quadradas (eu sei que há o módulo de matemática ... eu quero fazer isso sozinho), e eu estava me ferrando com a aritmética de ponto flutuante. Como você pode evitar isso?
def sqrt(num):
root = 0.0
while root * root < num:
root += 0.01
return root
Usando isto tem estes resultados:
>>> sqrt(4)
2.0000000000000013
>>> sqrt(9)
3.00999999999998
Eu percebo que eu poderia usarround()
, mas eu quero ser capaz de fazer isso realmente preciso. Eu quero ser capaz de calcular 6 ou 7 dígitos. Isso não seria possível se eu estivesse contornando. Eu quero entender como lidar adequadamente com cálculos de ponto flutuante no Python.