下列关于bool,int,float,指针类型的变量a 与“零”的比较语句正确的有?
bool : if(!a) int : if(a == 0) float: if(a == 0.0) # 错误 指针: if(a == NULL)
- 由于计算机二进制表示浮点数有精度的问题,0.0(浮点double)实际上不是0,而是非常接近零的小数
- if(a==0.0)是永远不会成立的
#include#include #include // 注意这个头文件 using namespace std; void isZero(float a) { if (fabs(a) < FLT_EPSILON) cout << "is 0" << endl; else cout << "not 0" << endl; } int main() { float a = 0.00001; isZero(a); cout << FLT_EPSILON << endl; return 0; }
not 0 1.19209e-07



