如何在python中使用大浮点数执行算术
我有两个数字a和b: a=156239482.739072 b=156239482.739071 如果我在python中执行a-b,则得到1.1920928955078125e-06。但是,我想要0.000001,这是减法后的正确答案 任何帮助都将不胜感激。先谢谢你如何在python中使用大浮点数执行算术,python,python-3.x,python-2.7,precision,floating-accuracy,Python,Python 3.x,Python 2.7,Precision,Floating Accuracy,我有两个数字a和b: a=156239482.739072 b=156239482.739071 如果我在python中执行a-b,则得到1.1920928955078125e-06。但是,我想要0.000001,这是减法后的正确答案 任何帮助都将不胜感激。先谢谢你 t = float(1562239482.739071) T = float(1562239482.739072) D = float(T - t) print(float(D)) 或 使用上述两种方法,我得到了相同的答案1.19
t = float(1562239482.739071)
T = float(1562239482.739072)
D = float(T - t)
print(float(D))
或
使用上述两种方法,我得到了相同的答案1.1920928955078125e-06。但是,我希望结果为0.000001
预期结果:0.000001
结果:1.1920928955078125e-06这是浮点运算的常见问题。使用模块您可以使用十进制 从十进制输入十进制 a=十进制('156239482.739071') b=十进制('156239482.739072') c=b-a 印刷品(c)
这将是您想要的答案
十进制
仍然是浮点。它只是十进制的,可配置的精度浮点。舍入问题仍然存在。打印和内部表示都是十进制的事实使得舍入更加直观,但这并不能消除问题。“使用十进制
模块”是一个错误的、误导性的答案,但没有解释十进制
模块的功能和实际功能。首先,答案应该是独立的,没有阅读链接。另一方面,您展示的是decimal
模块,就好像简单地使用它会自动解决这类问题一样。
t = 1562239482.739071
T = 1562239482.739072
D = T - t
print (D)