【发布时间】:2020-01-12 19:02:21
【问题描述】:
我试图在 python 3 中进行以下计算:
https://i.stack.imgur.com/f5y7z.png
添加:
https://i.stack.imgur.com/Txoya.png
应该返回 0(图像是用 wolframalpha 制作的)。
当我尝试在 python 中做同样的计算时:
pow((2*3*5),28)-29*math.floor(pow((2*3*5),28)/29)-1
它返回4303955653455607115022335。
每个部分的值为:
228767924549610000000000000000000000000000 正确。
-228767924549609995696044346544392884977665 不正确。
我该如何解决这个问题?
【问题讨论】:
-
请将所有相关代码和信息作为文本包含在问题本身中,而不是作为外部图像。
-
这能回答你的问题吗? Is floating point math broken?
-
您可以使用实际的bignum 库或the
fractionsmodule 来解决此问题
标签: python floating-point precision calculation bignum