如何将货币编号格式化为小数点后两位,如果没有美分则为 none?

How to format currency number to 2 decimal places, or none if no cents?

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

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

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

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

由于 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));
      }