Kotlin乘法时给出错误的结果

Rai*_*ker 1 floating-point kotlin

我想乘281.65100和得到28165,我执行:

fun main(args: Array<String>) {
    println("${281.65 * 100}")
}
Run Code Online (Sandbox Code Playgroud)

但我得到28164.999999999996 这里的问题是什么,如何得到28165结果?有没有好的Kotlin处理方式?

Rai*_*ker 5

是的,这是浮点数学问题。

kotlin.math包具有roundToLong扩展功能,在这种情况下有帮助。

(281.65 * 100).roundToLong()
Run Code Online (Sandbox Code Playgroud)