7*2.3结果不对

7*2.3结果不对

计算7*2.3时为什么结果不是16.1,而是16.099999999999998

相关代码:

>>> print(7 * 2.3)
16.099999999999998

尝试过的解决方式:


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!计算机在存储浮点数时会有误差,导致在使用浮点数计算的时候同样会产生误差,但这些误差在极小范围内的。因此会是同学得到的结果。

祝:学习愉快!

  • 倚劍笑紅塵 提问者 #1

    如果在一些使用场景下,比如比较大小时,会和我们的预期有偏差,例如:

    >>> print(7*2.3==16.1)  #实际想要的结果是True

    False


    python如何处理实际计算和计算机计算之间的偏差呢

    2021-02-19 15:23:07
  • 好帮手慕美 回复 提问者 倚劍笑紅塵 #2

    同学,你好!可以借助Python的标准库decimal实现对浮点数的基本运算,因课程中没有涉及到该库的讲解,同学作为了解就可以:

    http://img1.sycdn.imooc.com//climg/602f6f3109a3a99f07190561.jpg

    祝:学习愉快!

    2021-02-19 15:56:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师