此处不是完整源代码,仅选取了对我有帮助的部分#include <stdio.h>
int main() { float f=25.095; double d=25.095; if (f==25.095) {printf("f==25.095\n");} else printf("%f\n",f-25.095); if (d==25.095) {printf("d==25.095\n");} else printf("%f\n",d-25.095); return 0; }
程序运行的结果是
-0.000001 d==25.095
float类型,计算机表达浮点数时不能确切表示,将25.095表达为了25.0949999
所以在测试浮点数相等的时候不要使用“==”运算符,而要测试它与某个浮点值的差值范围
if(fabs(f-25.095)<=0.0001)
fabs()是数学公式中的浮点数绝对值函数,在使用时需要包括
#include <math.h>