如何将货币编号格式化为小数点后两位,如果没有美分则为 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 解决方案
这样做的一种方法是检查十进制数是否与其 int
或 long
值
相似
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));
}
如果有美分,我想将货币数字格式化为 2 位小数,如果有 none,则没有小数位。
例如,1 将显示为 $1。 1.1 将显示为 $1.10。
在 Android 中使用 Kotlin 有没有简单的方法来做到这一点?
我用过DecimalFormat("$#,###,##0.##)
。主要问题是 1.1 会显示为 $1.1。也尝试使用 DecimalFormat($#,###,##0.#0)
应用程序崩溃,因为它说我不能在第 12 个位置 #
之后的 0
之后。
由于 Java 和 Kotlin 携手合作,这里是 Java 解决方案
这样做的一种方法是检查十进制数是否与其 int
或 long
值
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));
}