Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin:2整数乘法的意外值_Kotlin_Multiplication - Fatal编程技术网

Kotlin:2整数乘法的意外值

Kotlin:2整数乘法的意外值,kotlin,multiplication,Kotlin,Multiplication,我编写了一个函数,以十亿为单位对值进行舍入,下面是我的代码: private fun roundBillion(value: Double): Int { val a = (value / 1000000).toInt() val res = a * 1000000 return res } 但是当我执行这个函数时,我在res变量中得到了一个意外的值。以下是断点位于返回语句上时的变量检查: 值=1.7636265135946954E11 a=176362 res=268

我编写了一个函数,以十亿为单位对值进行舍入,下面是我的代码:

private fun roundBillion(value: Double): Int {
    val a = (value / 1000000).toInt()
    val res = a * 1000000
    return res
}
但是当我执行这个函数时,我在
res
变量中得到了一个意外的值。以下是断点位于返回语句上时的变量检查:

值=1.7636265135946954E11

a=176362

res=268340864

我想不出问题出在哪里


你所经历的是一场灾难

Double.MAX_值
1.7976931348623157E308


Int.MAX_值
2147483647
。您在计算中的数字(即176362000000)超过了这个数字。

您所经历的是一个错误

Double.MAX_值
1.7976931348623157E308


Int.MAX_值
2147483647
。您在计算中的数字(即,
176362000000
)超过了该值。

176362*1000000
不适合32位
Int
所以您得到整数溢出。值
176362*1000000
不适合32位
Int
所以您得到整数溢出。这是溢出,但是溢出会导致包装吗?因为如果我用
964632435
乘以
10
我会得到
1056389759
而不是
646324350
。不确定溢出结果是什么原因。谢谢。这是溢出,但是溢出会导致包装吗?因为如果我用
964632435
乘以
10
我会得到
1056389759
而不是
646324350
。不确定溢出结果是什么原因。谢谢