gpt4 book ai didi

python 的 round() 函数不起作用?

转载 作者:行者123 更新时间:2023-11-28 20:49:53 26 4
gpt4 key购买 nike

下面是我的程序,用于查找作为级数给出的大约 5000 次多项式的近似根:

def s(r, z):
sm = 0
for k in range(1, z+1):
sm += (900-3*k) * r ** (k-1)
return sm

target = -600000000000

n = 1
dr = .125
curr = 0
while abs(curr - target) > 1:
curr = s(n, 5000)
if curr > target : n+= dr
else : n-=dr
dr /= 2

我希望它四舍五入到小数点后 12 位,因此

print round(n, 12)

这给了我:

1.00232210863

数字足够近似,但现在四舍五入为 12 位数字。我启动了 python 控制台并自己找到了它:

>>> n
1.0023221086328755
>>> round(n, 12)
1.002322108633

为什么我的 round() 函数只能在 python 控制台提示符下工作?

最佳答案

默认情况下,python 在打印时会将数字四舍五入到 11 位数字。试试看

print '%0.12f'%n

更清楚一点,当您在交互式控制台中并执行以下操作时:

>>> x = 1.123456789012345
>>> x
1.123456789012345
>>> print x
1.12345678901

请记住,第一个调用实际上是调用

x.__repr__() 

它将尽可能多地打印关于 x 的信息,而打印语句将转换为

print x.__str__()

和构建 str() 方法,如有必要,整数会舍入到 11 位数字。如上所示,您可以使用 Python 的 % 格式设置任意数量的数字。

关于python 的 round() 函数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13514706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com