java - 什么是南?以及如何创建?

标签 java nan

<分区>

我有一个 double[],它的值为 NaN。当我将数组的元素相加时,NaN 的结果也是 NaN

这是怎么发生的?如何防止将此 NaN 添加到数组的其余部分?

最佳答案

NaN代表非数字。它可以arise in a variety of ways ,例如作为 0./0.sqrt(-1) 的结果,或作为涉及其他 NaN 的计算结果.

检查 v 是否为 NaN 的最简单方法是使用 Double.isNaN(v) :

public static double sum(double arr[]) {
  double sum = 0.0;
  for (double val : arr) {
    if (!Double.isNaN(val)) {
      sum += val;
    }
  }
  return sum;
}

编辑:@Stephen C 在评论中提出了一个很好的观点:在决定忽略 NaN 之前,明智的做法是了解它的来源。这可能是您代码中其他地方的错误导致的结果,并且通过盲目地忽略 NaN,您可能只是在掩盖错误而不是修复它。

关于java - 什么是南?以及如何创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8971371/

相关文章:

java - Brave (Zipkin) 是否支持从客户端到服务器的并行请求

c - C 语言中 Double 变成 nan

android - 为什么 Float.isNaN(Float.NaN) 在旧的 LG 手机 Android 2.3.7 上是 "false"?

javascript - 刷新页面时计时器会重置 javascript

java - 如何将 ArrayList 项目添加到我的 ListView

Java:如何仅获取特定级别中存在的子目录名称?

python - 从右到左对齐数据

c - C中的 union 改变浮点加法的机器行为

java - 将操作数<T>转换为整数

java - Spring MVC 、Tomcat 和 mysql 的开发环境