娴酱! 发表于 2020-11-9 09:57:56

python初级学习

>>> 19.3-0.6-12.0
6.699999999999999
>>> float (19.3-0.6-12)
6.699999999999999
>>> 19.3-0.6
18.7
>>> 18.7-12
6.699999999999999
>>> 18.7-12.0
6.699999999999999
这是为什么啊

jackz007 发表于 2020-11-9 10:38:03

本帖最后由 jackz007 于 2020-11-9 10:39 编辑

       很正常,因为计算机对浮点数的储存有一定的误差。

娴酱! 发表于 2020-11-9 20:07:18

jackz007 发表于 2020-11-9 10:38
很正常,因为计算机对浮点数的储存有一定的误差。

如果想要正确的结果,应该怎么弄啊

jackz007 发表于 2020-11-9 20:35:55

本帖最后由 jackz007 于 2020-11-9 20:39 编辑

娴酱! 发表于 2020-11-9 20:07
如果想要正确的结果,应该怎么弄啊

      “正确的结果” 是非常错误的说法,浮点数的表达误差是与生俱来无法克服的缺陷,任何一门编程语言都一样。只能想办法让这个值看起来更靠谱一些,通过四舍五入,把小数位数显示少一点就可以了。
      试试这个代码,只显示 2 位小数的结果
print('%.2f' % (18.7-12))
页: [1]
查看完整版本: python初级学习