if(number == 0) {
//do something
}
由于零在C ++中的计算结果为false,如果数字为零,则if条件为false。 如何检查它是否真的是零?
答案 0 :(得分:2)
存在一种误解,例如:if
语句不是0
常量或number
的值,而是operator==
的返回值。< / p>
如果数字或0本身等同于“假”,则该点不是,但如果==
返回true,则返回true。如果操作数具有相同的值,则返回true。
就整数类型促销工作而言,上述断言适用于任何一对整数类型。
如果number
是其他内容,那么所有内容都与number
和int
之间的公共类型的可转换性相关(因为0是一个int),而“{精度”就是{ {1}}值可能具有,或者在两种类型之间实现number
。
答案 1 :(得分:0)
如果number
是浮点数,您可能会遇到一些麻烦。如果这是你的情况,只需要与零之间的合理小数进行比较。看一下这篇文章http://floating-point-gui.de/errors/comparison/我确定你可以更好地理解这个问题。
琐碎的例子:
#define epsilon 0.0001;
if( fabs(number) < epsilon ){
....
}
选择正确的epsilon可能会很棘手,具体取决于应用程序。