java - 如何测试 double 是否为零?

标签 java

我有一些这样的代码:

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.

否则当检查像 doublefloat 这样的浮点值是否为 0 时,使用错误阈值来检测该值是否为接近 0,但不是相当 0。

public boolean isZero(double value, double threshold){
    return value >= -threshold && value <= threshold;
}

关于java - 如何测试 double 是否为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18260213/

相关文章:

java - 解释使用迭代器时集合的同步?

java - 什么是 java.util.NoSuchElementException 以及如何修复它?

java - JFrame 生命周期

java - Tomcat8 UTF-8 显示为问号

哈希表和可比较对象中使用的 Java Null 对象

java - 等待 Symantec End Point DoScan.exe 完成文件扫描

java - 检查数组是单维还是多维

java - 如何将新的数据行添加到我的 Derby 数据库中?

java - 基于运行时提供的字符串查找要使用哪个接口(interface)实现的优雅解决方案

java - MigLayout:奇怪的间隙行为