私は平方根に近似する関数を書こうとしていました(私は数学モジュールがあることを知っています...自分でやりたいと思います)、私は浮動小数点演算に惑わされていました。どのようにそれを避けることができますか?浮動小数点エラーを回避する方法は?
>>> sqrt(4)
2.0000000000000013
>>> sqrt(9)
3.00999999999998
私はちょうどround()
を使用することができます実現が、私はこれは本当に正確に行うことができるようにしたい:これを使用して
def sqrt(num):
root = 0.0
while root * root < num:
root += 0.01
return root
は、これらの結果を持っています。私は6桁または7桁まで計算できるようにしたい。私が四捨五入しているなら、それは可能ではありません。 Pythonで浮動小数点計算を適切に処理する方法を理解したい。
を計算するための「ニュートン法」見上げる多分ある、[小数](http://docs.python.org/2/library/decimal.html)モジュールを試してみてください精度のために設計された? – Michael0x2a