Kotlin:条件是双精度值是 "normal" 数字

Kotlin: Condition that double-value is a "normal" number

我如何测试 Kotlin 中 Double 类型的值是否不是 Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.NaN 或其他一些特殊值?

我想要 require(Double.isNormal(x))

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/is-finite.html

require(x.isFinite())就是你所需要的。

听起来您已经回答了自己的问题....编写一个函数来检查 3 种情况,如果满足先决条件,则将 lambda 传递给 运行:

fun ifNormal(double: Double, toDo: () -> Unit) {
    if (double != Double.POSITIVE_INFINITY 
        && double != Double.NEGATIVE_INFINITY 
        && double != Double.NaN) {
        toDo()
    }
}

然后像这样使用它:

ifNormal(1.0) {
  // Do stuff
}