如何测试Float或Double是无限还是NaN?

Sum*_*uma 7 floating-point double scala

在Java中,有一个API可以测试数字是无穷大还是NaN.

我在Scala中找不到这样的东西,并且调用Java函数似乎我需要设置值或调用java.lang.Double静态方法:

Double.box(x).isNaN

java.lang.Double.isNaN(x)
Run Code Online (Sandbox Code Playgroud)

难道没有什么比Scala更"原生"来测试无限/ NaN-ness了吗?

Mic*_*jac 14

这些是盒装上的方法scala.Double.无需手动装箱.

scala> 1.2.isNaN
res1: Boolean = false

scala> 1.2.isInfinity
res2: Boolean = false

scala> (0.0 / 0.0).isNaN
res8: Boolean = true

scala> (1.0 / 0.0).isInfinity
res5: Boolean = true
Run Code Online (Sandbox Code Playgroud)

  • scaladoc / REPL 1,IntelliJ 0。 (2认同)