Преобразовать строку, которая является "float", в Integer - PullRequest
0 голосов
/ 04 июля 2019

Как преобразовать строковое значение, которое содержит представление с плавающей точкой, в целое число в kotlin?

Я попытался преобразовать строку в число с плавающей точкой с .toFloat(), а затем преобразовал ее в целое число, используя toInt(), и этоработает без нареканийНо как преобразовать такую ​​строку в целое число напрямую?

val strDemo = "42.22"
val intDemo = strDemo.toInt()

Фрагмент выше выдает NumberFormatException, потому что это неверное числовое представление Integer.

Но, когда я пытаюсь

val strDemo = "42.22"
val intDemo = strDemo.toFloat().toInt()

он преобразует данные без исключения, потому что строка сначала конвертируется в число с плавающей точкой.И есть правильное представление чисел для значения с плавающей точкой.

Теперь, как обойти метод toFloat() и преобразовать strDemo в Integer напрямую?

Ответы [ 2 ]

2 голосов
/ 04 июля 2019

Нет волшебной функции, которая будет преобразовывать десятичные числа / числа с плавающей запятой в целое число напрямую.Это должно быть сделано таким образом.Даже если вы нашли его, я уверен, что процесс toFloat().toInt() все еще происходит в этой функции.

Поэтому решение, которое вы можете сделать, - создать расширение String, например:

StringExt.kt

fun String.floatToInt(): Int {
    return this.toFloat().toInt()
}

Вы можете использовать его следующим образом:

val strDemo = "42.22"
val intDemo = strDemo.floatToInt()
0 голосов
/ 04 июля 2019

Сначала вы должны использовать Var для переменных, после этого вы должны сделать это:

   intdemo=strdemo.toFloat().toInt()

или

intdemo=valueof(strdemo).toFloat().toInt()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...