Python中的除法错误



我试图将一个大数字除以另一个数字。具体来说,52075187820116425乘以5。然而,当我进行手术时,我得到了一个错误的答案。我通过将以下程序放在jupyter笔记本上来测试这一点。然而,这得出的答案与正确答案相差5分。我认为这不是由于浮点数错误,也不是由于所得商是整数。为什么会发生这种情况?有人能解释一下如何处理这个错误吗?

big = 52075187820116425
int(big/5)*5

当我只是做

big/5 

我得到1.041503756403284e+16,这也是不正确的,因为最后一个数字应该是5而不是4

它真的是整数吗

奇怪的是,我的Python给出了正确的答案,而不是e+16数字。也许我的Python版本不同。

这不是一个错误,这就是Python(和大多数编程语言(存储数字(或浮点(的方式。

您的"big"值不是Integer。这是一个"任意"。它可以是任何东西,也可以存储任何东西。如果愿意,可以将其重新分配给字符串。如果你强迫它成为Int,它会检查它是否可以成为Int。但它并没有真的把它变成Int。


浮子到底是什么

浮点数字不精确。分裂变得非常奇怪。有时,它们甚至可以是无穷大或极小的。它们对数值使用一定数量的位,对其大小使用另一个特定数量的位:e+16。

1.041503756403284e+16==10041503756403284E+15(整数永远不会这样做。它们没有量级。它们只是数字。(

Python中的除法很难。如果你有一个Int值/"方法将始终返回Float(也就是说,它将始终返回一个数字特征和一个幅度特征(。


最终答案

•"//"操作员

//运算符总是只返回一个完美的数字特征(而不会返回一个数量级e+特征(。

最新更新