a昊a 2017-08-09 09:08 采纳率: 66.7%
浏览 1683
已采纳

C语言,比较小数。求解

c语言中怎么比较两个float类型的数据是否相等,或者float 和double,是减去一个极小的数吗?

  • 写回答

2条回答 默认 最新

  • 战在春秋 2017-08-09 09:40
    关注

    浮点数的表示是不精确的,所以不能直接用 == 比较两个浮点数是否完全相等。
    常用的方法是定义一个极小的数,如果两个浮点数之差的绝对值小于这个极小数,
    则认为这两个浮点数相等。

    一个完整的范例如下:

    #include <stdio.h>   
    #include <math.h>   
    
    #define EPSILON 0.000001 //根据精度需要  
    
    int main() {
        float a = 10.55f;
        float b = 10.55f;
    
        if (fabs(a - b) <= EPSILON) {
            printf("a 等于 b\n");
        }
        else {
            printf("a 不等于 b\n");
        }
    
        return 0;
    }
    

    如果对您有帮助,请采纳答案好吗,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大