我有一些这样的代码:
class Foo {
public double x;
}
void test() {
Foo foo = new Foo();
// Is this a valid way to test for zero? 'x' hasn't been set to anything yet.
if (foo.x == 0) {
}
foo.x = 0.0;
// Will the same test be valid?
if (foo.x == 0) {
}
}
我基本上是想避免将来出现被零除的异常。
谢谢
最佳答案
类范围内的数值原语在未显式初始化时被初始化为零。
本地范围内的数字原语(方法中的变量)必须显式初始化。
如果您只担心除以零异常,检查您的 double 值是否完全为零非常有用。
if(value != 0)
//divide by value is safe when value is not exactly zero.
否则当检查像 double
或 float
这样的浮点值是否为 0 时,使用错误阈值来检测该值是否为接近 0,但不是相当 0。
public boolean isZero(double value, double threshold){
return value >= -threshold && value <= threshold;
}
关于java - 如何测试 double 是否为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18260213/