【发布时间】:2019-10-07 06:36:48
【问题描述】:
大家好,我在 Windows 10 64 位操作系统上使用 python 2.7 32,我得到了一些奇怪的结果。
运行以下代码时
from numpy import sin, pi
for i in range(6, 10):
x = 10**-i
print(sin(x*pi)/x/pi)
print(sin(x*pi)/x/pi, i)
虽然数学相同,但我得到不同的结果
0.999999999998
(0.99999999999835498, 6)
1.0
(0.99999999999998357, 7)
1.0
(0.99999999999999967, 8)
1.0
(1.0, 9)
当我从未来导入打印功能时,我会得到相同的结果。 只是好奇为什么会发生这种情况?
注意:虽然打印结果不同,但如果我比较它们,我会得到相同的结果。
【问题讨论】:
-
我不认为这是一个有效的重复答案。输出应该是
0.999999999998355 0.999999999998355 6, 0.9999999999999836 0.9999999999999836 7, 0.9999999999999997 0.9999999999999997 8, 1.0 1.0 9。 Python 3 给出了预期的输出 -
@venky__ 正确,即使我在 windows 上使用 python 2.7 进行测试,我也会得到你的结果......那么你使用的是哪个操作系统?
-
看起来
print()打印的浮动不同,具体取决于它们是单独的还是元组的一部分。当它只打印浮点数时,它会将其四舍五入到更少的小数位。 -
如果要精确控制,请使用格式字符串,以便指定位数。
-
感谢所有 cmets,我使用的是 windows 10 64 位操作系统和 python 2.7 32 位,问题是我没有任何问题,我只是想知道为什么我会有所不同结果虽然我做同样的数学问题
标签: python python-2.7 python-2.x