Как я могу показать значение перед "." знак? - PullRequest
0 голосов
/ 05 мая 2019

Я создаю валютное приложение, но некоторые значения похожи на «194.23564» или «1187.7594», поэтому я хочу показать пользователю перед «.» подписать значения. Как я могу сделать это с Kotlin?

Ответы [ 2 ]

1 голос
/ 05 мая 2019

Нет необходимости в преобразовании типов данных перед извлечением целочисленной части.
Вы можете использовать substringBefore():

val number = "194.23564"
val intPart = number.substringBefore(".")

Если вы хотите, чтобы результат был целым числом, вы можете использовать теперь toIntOrNull() вместо toInt(), чтобы избежать исключения в случае, если исходная строка не имеет целочисленной части (например, ".015"):

val intPart = number.substringBefore(".").toIntOrNull() 
1 голос
/ 05 мая 2019

За исключением предложенного, я бы не конвертировал в Float . Это подвержено ошибкам округления и может не возвращать значение до десятичной точки.

Пример:

val num = "0.99999999"
println(num.toFloat().toInt())  // gives 1

Вместо этого разбейте строку в десятичной точке:

val num = "0.99999999"
val split = num.split('.')
println(split[0])  // gives 0

Приятным побочным эффектом этой реализации является то, что она работает даже для целых чисел без десятичной точки. Если вам нужен результат как Int, просто позвоните split[0].toInt().

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