在python中,while循环如何仅比较3个小数点以停止执行
python是编程的新手,我想让这个while循环在值相等时停止执行,但仅限于3个小数点。谢谢你的帮助在python中,while循环如何仅比较3个小数点以停止执行,python,loops,while-loop,decimal,Python,Loops,While Loop,Decimal,python是编程的新手,我想让这个while循环在值相等时停止执行,但仅限于3个小数点。谢谢你的帮助 def newtonSqrt(n): approx = 0.5 * n better = 0.5 * (approx + n/approx) count = 0 while better != approx: approx = better better = 0.5 * (approx + n/approx) co
def newtonSqrt(n):
approx = 0.5 * n
better = 0.5 * (approx + n/approx)
count = 0
while better != approx:
approx = better
better = 0.5 * (approx + n/approx)
count = 1 + count
return (approx, count)
print(newtonSqrt(10))
将值设置为小数点后3位(他们在该链接中设置了2位,但您可以改为设置3位),然后进行比较。e、 g:
while round(better, 3) != round(approx, 3):
由于二进制表示错误,不应直接比较浮点值是否相等。四舍五入可能有效,但看起来有点粗糙 相反,使用类似于
的方法,例如将abs(更好的近似值)
设置为0.001