检查 NaN 并在 If [重复] 中使用它
Posted
技术标签:
【中文标题】检查 NaN 并在 If [重复] 中使用它【英文标题】:Checking for NaN and using it in an If [duplicate] 【发布时间】:2012-10-12 05:56:15 【问题描述】:我正在从数据库中收集一些数据并将它们加在一起以获得一些统计数据,但是由于我回溯了一些数据,因此计算的总和有时会显示为 NaN
(不是数字)我想创建一个if 语句表示 if(not a number) 然后从我的表中排除这些数据。
如何测试数据(在本例中为双精度)是否为 NaN
?
【问题讨论】:
你也关心小数吗? 【参考方案1】:您可以使用静态方法Float.isNaN(float)
和Double.isNaN(double)
。
double x = ... // whatever calculation you do
if (Double.isNaN(x))
...
【讨论】:
x
可以是任何数字类型或数字的包装器,这仍然有效。即它不必是double
。
还有Float.isNan(x)
还有isNaN(x)
@SunnyRGupta 那在哪里?
? - 哎呀。我再次做到了。 javascript 混合在这里。没有 isNaN 直接。我收回我的话。【参考方案2】:
您可以通过两种方式测试 NaN。您可以使用内置函数
Double.isNaN(x)
或执行以下检查
if (x != x)
如果 x 是 double
或 float
【讨论】:
第二段代码只有在 x 是double
时才有效。如果由于某种原因代码使用Double
,那么它将最终比较参考。
这是如何工作的? x 是双倍的,但不是数字?
@Vash: NaN 很特别,它可能是唯一一个比较不等于自身时返回true的东西。
想了解更多的朋友:***.com/questions/2618059/in-java-what-does-nan-mean【参考方案3】:
这对你有用。
if(number == Float.NaN)
【讨论】:
这总是假的,因为 NaN != NaN // 1 方法 if (Double.isNaN(doubleValue)) // 2. 方法 if (doubleObject.isNan()) ... 简单地做: if (var == Double .NaN) ...以上是关于检查 NaN 并在 If [重复] 中使用它的主要内容,如果未能解决你的问题,请参考以下文章