if(number == 0) {
//do something
}
由于零在C++中的计算结果为false,如果数字为零,它将在if条件中为false。 我该如何检查它是否真的是数字零?如何检查数字是否为零?
if(number == 0) {
//do something
}
由于零在C++中的计算结果为false,如果数字为零,它将在if条件中为false。 我该如何检查它是否真的是数字零?如何检查数字是否为零?
如果number
是浮点数,则可能会遇到一些麻烦。如果这是你的情况,只需比较一个合理的小零。看看这篇文章http://floating-point-gui.de/errors/comparison/我相信你可以更好地理解这个问题。 简单的例子:
#define epsilon 0.0001;
if(fabs(number) < epsilon){
....
}
选择正确的小量可能会非常棘手,这取决于应用。
有一种误解,在这里:在if
说法是不看好0
不变或number
价值,但关于operator==
返回值。
重点不在于如果数字或0本身等于“假”,但是如果==
返回true或不是。如果操作数具有相同的值,则返回true。
至于整体类型促销工作,上述断言适用于任何一对整数类型。
如果number
别的东西,则所有涉及向number
和int
之间的共同类型的兑换(因为0是一个int)和所述“精确”的number
值可以具有,或在方式operator==
被实现这两种类型之间。
你的代码没问题。当'number'为'0'时,'number == 0'为'1',这是真的。 – Barmar
您的代码将起作用。测试它。 –
是的,我想我得到了一个错误的问题... – Joshua