• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

if中用浮点判断大小时,无法判断,总是会进if

莱克迷KW 2021-01-04 浏览量:632

if中用浮点判断大小时,无法判断,总是会进if

如float a=1.002;

if(a>1.0f)

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 在计算机处理中,浮点数不做直接等于比较,而是判断绝对值差来比较相等。
    • 发布于 2021-01-04
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 代码不拿出来不好告诉你啊,另外给你一个重要的参考信息

    例如:float a=5;

    mcu可能识别出4.999999,这就是个精度问题。

    假入你判断  if(a<5)   这是可能会一直进入这个if里


    这只是个可能啊,具体还是要看你代码。

    • 发布于2021-01-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 你不要用1.0f表示,要用1.000f就可以判断了,不然后面2位不比较
    • 发布于2021-01-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 浮点数不能直接比较大小的,因为浮点数在内存里面保存的形式的问题

    建议取差值,然后与0比较大小

    • 发布于2021-01-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 你把1.0改成1.00000就可以了,这里有最小小数的判断的
    • 发布于2021-02-03
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

if中用浮点判断大小时,无法判断,总是会进if