Kotlin: неожиданное значение для умножения на 2 Int - PullRequest
0 голосов
/ 17 сентября 2018

Я написал функцию для округления значения в миллиард, вот мой код:

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

но при выполнении функции я получаю неожиданное значение в переменной res. Вот проверка переменных, когда точка останова находится в операторе возврата:

значение = 1,7636265135946954E11

a = 176362

res = 268340864

Я не могу понять, где проблема!

Screen Shot

1 Ответ

0 голосов
/ 17 сентября 2018

Вы испытываете переполнение целого числа .

Double.MAX_VALUE равно 1.7976931348623157E308.

Int.MAX_VALUE равно 2147483647.Ваш номер в расчете (т.е. 176362000000) превышает это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...