减去整数python奇怪的结果

2024-04-24 23:33:42 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,我所做的就是用urllib从一个网站下载一些日期。我认为这个数字是字节形式。因此,我通过执行以下操作将其更改为整数。这似乎很管用。在

real_value = (int(real_value) / 100)

然后我创建另一个变量,它应该等于两个值之间的差。在

^{pr2}$

奇怪的是,这有时有效,有时我得到的结果是后面有很多额外的数字,或者它会说“9.999999999999 6E-05”。在

所以我真的很困惑。有什么想法吗?在


Tags: 字节value网站数字整数urllibreal形式
3条回答

阅读issues with floating points in python

假设您正在使用python3:您可能希望对经典python2的“整数除法”行为使用一个双/,其中结果会四舍五入。在

real_value = (int(real_value) // 100)

weired值正常,应该是正确的。在

这是因为您使用的是浮点运算。您可以通过设置用于表示的位数来限制结果的精度。在

参考:http://en.wikipedia.org/wiki/Floating_point

浮点数can't represent most numbers exactly。即使有一个非常简单的例子:

>>> 0.1 + 0.1
0.20000000000000001

你可以看出这并不准确。如果你使用浮点数,这只是你必须处理的问题。或者,您可以使用Python's ^{} module

^{pr2}$

即使decimal也不能精确地表示每一个数字,但是在处理大量以10为基数的运算时,它应该会给您提供更合理的结果。在

相关问题 更多 >