Показать или скрыть десятичные дроби - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть двойное значение, если это число похоже на это: 123.00 Мне нужно показать его как 123 только без десятичных разрядов, но, если число похоже на 123.23 или 123.2, мне нужно показать его с текущим десятичным числоммест: 123.23 или 123.2, в зависимости от обстоятельств.

Я пробовал с десятичным форматом, но не смог найти правильный шаблон.

Это лучший способ сделать это, чемпреобразование строк и работа с подстроками и тому подобное?

Ответы [ 3 ]

0 голосов
/ 15 февраля 2019

DecimalFormat - это то, что вы ищете, я думаю:

import java.text.DecimalFormat

fun main(args : Array<String>) {
    val df = DecimalFormat("0.##")
    println(df.format(123.0))
    println(df.format(123.3))
    println(df.format(123.32))
    println(df.format(123.327))
}

Вывод:

123
123.3
123.32
123.33
0 голосов
/ 15 февраля 2019

Вы можете использовать DecimalFormat с setMaximumFractionDigits.Создание функции расширения будет держать сложность подальше от call-сайта:

fun Double.toStringRounded(fracDigits: Int) = DecimalFormat().apply {
    setMaximumFractionDigits(fracDigits)
}.format(this)

Использование:

3.14159.toStringRounded(2) // will be "3.14"
0 голосов
/ 15 февраля 2019

Вот один из способов, которым вы могли бы сделать это:

fun func(x: Double): String  {
    if (x.rem(1).compareTo(0) == 0){
        return x.toInt().toString();
    } else {
        return x.toString();
    }
}

print(func(1.32132)); //Returns 1.32132

print(func(3.00)); //Returns 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...