【问题标题】:How to format currency number to 2 decimal places, or none if no cents?如何将货币数字格式化为小数点后 2 位,或者如果没有美分则没有?
【发布时间】:2021-11-16 13:05:24
【问题描述】:

如果有美分,我想将货币数字格式化为 2 位小数,如果没有美分,我想没有小数位。

例如,1 将显示为 $1。 1.1 将显示为 $1.10。

有没有简单的方法在 Android 中使用 Kotlin 做到这一点?

我用过DecimalFormat("$#,###,##0.##)。主要问题是 1.1 会显示为 1.1 美元。还尝试使用DecimalFormat($#,###,##0.#0) 应用程序崩溃,因为它说我不能在第 12 位的# 之后的0 之后。

【问题讨论】:

标签: android kotlin number-formatting decimalformat


【解决方案1】:

由于 Java 和 Kotlin 携手合作,这里有一个 Java 解决方案

这样做的一种方法是检查十进制数是否与其intlong 值相似

if (number == (int) number)
      {
          NumberFormat formatter = new DecimalFormat ("##");
          System.out.println (formatter.format (number));
      }
else
      {
          NumberFormat formatter = new DecimalFormat ("##.00");
          System.out.println (formatter.format (number));
      }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    相关资源
    最近更新 更多