qq_28057679 2018-10-26 15:09 采纳率: 0%
浏览 9261
已结题

python浮点数大小比较

MA5 = round(5.976,2)
MA5_1 = round(6.098,2)
MA10 = round(6.350,2)
MA10_1 = round(6.475,2)

print MA10-MA5
print MA10_1-MA5_1

if MA10-MA5<MA10_1-MA5_1:
print "ccc"

a=0.37
b=0.37
if a<b:
print "ddd"

结果:0.37 0.37 ccc ddd未进入条件。请问这是怎么回事,怎么解决比较问题,明明是一样的

  • 写回答

3条回答 默认 最新

  • threenewbee 2018-10-26 15:53
    关注

    你这么提问没法回答,缩进都没有,谁知道你if怎么写的。
    先学习下这个:https://blog.csdn.net/askdevteam/article/details/82692845


    这很正常,浮点数在计算机里是二进制表示的,10进制能取整的数,比如5.98 6.35等,用二进制表示都是循环小数,有误差。
    所以虽然显示的都是0.37和0.37,它们就出现误差了。

    好比三进制的0.1 0.2对应10进制的0.3333333.... 0.6666666......
    那么三进制的0.1+0.2和1.0比较,虽然都是1.0,但是用10进制计算,就是0.999999....和1.0,前者<后者。

    评论

报告相同问题?

悬赏问题

  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用