【发布时间】:2012-10-12 05:56:15
【问题描述】:
我正在从数据库中收集一些数据并将它们加在一起以获得一些统计数据,但是由于我回溯了一些数据,因此计算的总和有时会显示为 NaN(不是数字)我想创建一个if 语句表示 if(not a number) 然后从我的表中排除这些数据。
如何测试数据(在本例中为双精度)是否为 NaN?
【问题讨论】:
-
你也关心小数吗?
标签: java if-statement nan
我正在从数据库中收集一些数据并将它们加在一起以获得一些统计数据,但是由于我回溯了一些数据,因此计算的总和有时会显示为 NaN(不是数字)我想创建一个if 语句表示 if(not a number) 然后从我的表中排除这些数据。
如何测试数据(在本例中为双精度)是否为 NaN?
【问题讨论】:
标签: java if-statement nan
您可以使用静态方法Float.isNaN(float) 和Double.isNaN(double)。
double x = ... // whatever calculation you do
if (Double.isNaN(x)) {
...
}
【讨论】:
x 可以是任何数字类型或数字的包装器,这仍然有效。即它不必是double。
您可以通过两种方式测试 NaN。您可以使用内置函数
Double.isNaN(x)
或执行以下检查
if (x != x)
如果 x 是 double 或 float
【讨论】:
double 时才有效。如果由于某种原因代码使用Double,那么它将最终比较参考。
这对你有用。
if(number == Float.NaN)
【讨论】: