在Kotlin的Double.toInt(),舍入还是截断中使用了哪种方法?

phi*_*kim 6 type-conversion kotlin

官方API文档中,它说:

以Int为单位返回此数字的值,可能涉及舍入或截断.

我想截断,但不确定.任何人都可以解释其确切含义may involve rounding or truncation吗?

ps:在我的单元测试中,(1.7).toInt()为1,这可能涉及截断.

hot*_*key 13

KDoc Double.toInt()是简单地继承而来Number.toInt(),为此,确切的含义是,它在具体Number实现中定义了如何转换为Int.

在科特林,该Double操作遵循IEEE 754标准,以及语义Double.toInt()转换是相同的铸造doubleintJava中,即正常的数字向零取整,丢弃小数部分:

println(1.1.toInt())  // 1
println(1.7.toInt())  // 1
println(-2.3.toInt()) // -2
println(-2.9.toInt()) // -2
Run Code Online (Sandbox Code Playgroud)