显示或隐藏小数

时间:2019-02-15 00:59:16

标签: kotlin

我有一个双精度值,如果该数字是这样的:123.00我需要仅将其显示为123,没有小数位,但是,如果该数字是123.23或123.2,则需要以当前的小数显示位置:123.23或123.2(视具体情况而定)。

我尝试使用十进制格式,但是找不到正确的模式。

这是比字符串转换和子字符串等操作更好的方法吗?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

这是您可以做到的一种方法:

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

答案 2 :(得分:-1)

您可以将<html> <head> <script src="element.js"></script> </head> <body> <element></element> </body> </html> DecimalFormat一起使用。创建扩展功能将使复杂性远离呼叫站点:

setMaximumFractionDigits

用法:

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