【问题标题】:Replace the Nan values with 0 in Java [duplicate]在Java中用0替换Nan值[重复]
【发布时间】:2021-06-27 09:04:36
【问题描述】:

您好,我需要在我的 java 数组中将 Nan 值替换为 0,感谢您的帮助。你可以找到我的数组的例子。

数组类型为double,数组内容如下。

x = [ 1 , 2, Nan , 4, Nan ] 

【问题讨论】:

  • 你的数组是什么类型的?
  • 它是一个双[]
  • 无法想象 Nan 在 java 中是如何作为 double 存在的......
  • @forrestg 有一个静态变量Double.NaN
  • 很高兴知道这一点,~~

标签: java arrays nan


【解决方案1】:

循环数组并使用Double中的isNaN方法检查数字是否为NaN

for(int i=0; i<array.length; i++){
    if(Double.isNaN(array[i])) {
        array[i] = 0d;
    }
}

【讨论】:

    【解决方案2】:

    在 Java Nan != Nan 的计算结果为真。

    double[] x = { 1 , 2, Double.NaN , 4, Double.NaN};
    System.out.println(Arrays.toString(x));
    for (int i = 0; i < x.length; i++) {
        if(x[i]!=x[i]) {
            x[i] = 0;
        }
    }
    System.out.println(Arrays.toString(x));
    

    输出:

    [1.0, 2.0, NaN, 4.0, NaN]
    [1.0, 2.0, 0.0, 4.0, 0.0]
    

    【讨论】:

    • 不错的技巧,但我会坚持使用Double.isNaN,因为等式可能会在未来的 java 版本中发生变化。
    猜你喜欢
    • 1970-01-01
    • 2019-11-10
    • 2018-03-12
    • 2019-05-05
    • 2018-09-09
    • 2018-03-16
    • 1970-01-01
    • 2017-08-25
    相关资源
    最近更新 更多