Kotlin:2 Int乘法的意外值

时间:2018-09-17 11:26:12

标签: kotlin multiplication

我已经编写了一个将数值舍入为十亿的函数,这是我的代码:

private fun roundBillion(value: Double): Int {
    val a = (value / 1000000).toInt()
    val res = a * 1000000
    return res
}

但是当我执行函数时,在res变量中得到了意外的值。这是断点在return语句上时的变量检查:

  

值= 1.7636265135946954E11

     

a = 176362

     

res = 268340864

我不知道问题出在哪里!

Screen Shot

1 个答案:

答案 0 :(得分:3)

您遇到的是一个integer overflow

Double.MAX_VALUE1.7976931348623157E308

Int.MAX_VALUE2147483647。您在计算中的数字(即176362000000)超出了该数字。