如何使用十进制格式仅隐藏整数中的尾随零

tes*_*est 1 java double decimalformat kotlin

我需要这样的格式数字:

23.0 -> 23
23.20 -> 23.20
23.00 -> 23
23.11 -> 23.11
23.2 -> 23.20
23.999 -> 24
23.001 -> 23
1345.999 -> 1346 // Edited the question to add this from the OP's comment
Run Code Online (Sandbox Code Playgroud)

这是我的代码:java:

  public static String toPrice(double number) {
         DecimalFormatSymbols formatSymbols = new DecimalFormatSymbols();
            formatSymbols.setGroupingSeparator(' ');
            DecimalFormat format = new DecimalFormat("#,###,###.##", formatSymbols);
            return format.format(number);
    
         }
Run Code Online (Sandbox Code Playgroud)

科特林:

fun Double.toPrice(): String =   DecimalFormat("#,###,###.##", DecimalFormatSymbols().apply {
                groupingSeparator = ' '
            }).format(this)
Run Code Online (Sandbox Code Playgroud)

但对于输入 23.20 或 23.2,我得到结果 23.2。这对我来说是错误的。我需要 23.20。我应该使用哪种字符串模式来实现此结果?请帮我。

Sat*_*era 5

public static String toPrice(double number) {
    if (number == (int) number) {
        return Integer.toString((int) number);
    } else {
        return String.format("%.2f", number);
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑
包括千位分隔符

public static String toPrice(double number) {
    if (number == (int) number) {
        return String.format("%,d",(int)number);
    } else {
        return String.format("%,.2f", number);
    }
}
Run Code Online (Sandbox Code Playgroud)