1、为什么对float类型数据进行比较时,不要用==操作符?
计算机专业的朋友,在学习C语言的float和double类型、Pascal语言的real类型,或者其他语言的浮点数类型时,都会被告诫:千万不要对两个浮点类型的数据进行是否相等的比较。
为什么呢?
首先,我们看下面的程序:
#include int main(){ float f1 = 3; float f2 = 3; if (f1 == f2) { printf("equal!\n"); } else { printf("not equal!\n"); } return 0;}
你推测一下,程序的运行结果是什么?可能有部分人认为结果是not equal,但程序运行的结果却是:
equal!
既然float数据之间可以使用==操作符,但为什么都不推荐这样做呢?
我们继续看看下面的程序:
#include int main(){ float f1 = 1.25; f1 = f1 + 1.26; if (f1 == 2.51) { printf("equal!\n"); } else { printf("not equal!\n"); } return 0;}
这个程序&