Java Assert Double是NaN

前端之家收集整理的这篇文章主要介绍了Java Assert Double是NaN前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图断言我的双重是NaN.
这是一段代码
private Double calculateIt(String input){...}

assertEquals(Double.NaN,calculateIt("input text"));

代码不编译,Double.NaN定义为原始

public static final double NaN = 0.0d / 0.0;

为了使断言工作,我用Na对象包装NaN.

assertEquals(new Double(Double.NaN),calculateIt("input text"));

有没有更短的方法来做到这一点?

解决方法

你可以使用:
boolean isNan = Double.isNaN(calculateIt("input text"));
assertTrue(isNan);

Double.NaN值无法与==(Double.NaN == Double.NaN将返回false)进行比较,因为NaN被视为特殊值.

更多信息:

> IEEE floating point

猜你在找的Java相关文章