java - Double.NaN 是一个对象

标签 java

public class Double1 {    

    public static double parseDouble(String _s, double _def) {
        try {
            return Double.parseDouble(_s);
        }
        catch(Exception e) {
        }
        return _def;
    }

    public static void main(String[] args) {
        Double1 db=new Double1();
        boolean ab=db.parseDouble("vijay", Double.NaN)!=Double.NaN?true:false;
        System.out.println("ab value: "+ ab);
        System.out.println(Double.NaN==Double.NaN);
    }
}

它应该返回 true,而上面的代码返回 false。为什么?

最佳答案

NaN 与所有事物(包括它们自己)相比都是假的。

你可以检查 NaN

Double.isNaN(doubleValue)

除了完全使用此行为外,它实际上什么都不做:如果 x != x,则值 x 是 NaN。

关于java - Double.NaN 是一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8295720/

相关文章:

java - "reuse"CompletableFuture 是否安全/良好实践

java - 按下 JButton 时重置游戏的 ActionListener

java - 如何用java读取rar文件的注释?

java - 无法编译程序

java - RecursiveTask 结果到 ConcurrentMap

java - 在执行 hibernate 查询时有条件地禁用 hibernate 验证

java - 创建 ListNode 的新实例

java - 在 Java httpclient 中设置用户代理并允许重定向到 true

java - Java 中的二进制补码运算符

java - 如何从 Java 中的 jar 中读取文件?