如何在Scala中检测Infinity值?

aka*_*ppi 12 scala scala-2.10

Scala Double.isNaN用于检测非数字但不Double.isInf检测(正或负)无穷大.

为什么?我想检查参数是否是"真实"数字(即具有数值).将它转换为字符串并检查"inf"或其他东西会做到这一点,但必须有更好的方法吗?

就像在C++中一样: http //en.cppreference.com/w/cpp/numeric/math/isinf

使用Scala 2.10

gou*_*ama 20

Scala Double有一个isInfinite方法和Neg/ Posvariants:

scala> val a = 22.0
a: Double = 22.0

scala> a.isInfinite
res0: Boolean = false

scala> val b = 2.0/0
b: Double = Infinity

scala> b.isInfinite
res1: Boolean = true

scala> b.isPosInfinity
res4: Boolean = true
Run Code Online (Sandbox Code Playgroud)