举个例子
bool
func(double a
, double b
, double& c
)
{
if (b
== 0) return false
;
c
= a
/ b
;
return true
;
}
int main(int argc
, const char** argv
)
{
double a
= 19, b
= 0, c
= 0;
bool res
= func(a
, b
, c
);
if (!res
) {
cout
<< "The func fails!" << endl
;
return 0;
}
else
cout
<< "The func succeeds!" << endl
;
return 0;
}
结果为 The func fails! 注销掉func函数中的if (b == 0) return false;则程序显示 The func succeeds!
程序并没有崩溃,是因为float或double中的零是近似零,不能直接写成 if (b == 0) 应该写成
if (b
> -0.000001 && b
< 0.000001)