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
}
我如何测试 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
}