以下陈述不应该成立吗?
assertTrue(Double.isNaN(Math.tan(Math.acos(0d))));
但不是Double.NaN
Java 返回
6.123233995736766 * 10^-17
在我的 64 位机器上。
编辑:
这是一个复制和粘贴错误。事实上Java返回1.633123935319537E16
我知道这是因为浮点表示,但我的印象是切线函数的那些未定义值会得到与 eg 相同的处理,Math.sqrt(-1d)
但我猜在这种情况下 java.lang.Math 只是检查是否论据在评估之前是肯定的。