C语言如何判断两个浮点数是否相等? |
您所在的位置:网站首页 › c语言判断三个数是否相等的方法 › C语言如何判断两个浮点数是否相等? |
转载自https://www.jianshu.com/p/8e01654b347c 我们都知道C语言中如何判断两个整形数据是否相等,直接用==就可以判断。但是判断两个浮点数是否相等却不能用==。 float是32位,double是64位 float32位中,1位符号位,8位指数位,23位尾数位 double64位中,1位符号位,11位指数位,52位尾数位 一般float型只能精确到小数后六位(即1e-6),将float型数据的绝对值与1e-6比较,来判断是否相等(为零)。 float的精度误差在1e-6;double精度误差在1e-15 所以要判断一个float型数:if(fabs(f) < 1e-6); 要判断一个double型数:if(fabs(f) < 1e-15); 若满足,为零。 例:判断float a,b是否相等 if(fabs(a-b) < 1e-6) printf("a等于b\n"); else printf("a不等于b"); 另外注意fabs()和abs()的区别:fabs()是对浮点数求绝对值,abs()是对整数求绝对值。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |