如何以货币格式格式化小数?
2022-08-31 10:06:30
有没有办法按如下方式设置小数的格式:
100 -> "100"
100.1 -> "100.10"
如果是整数,请省略小数部分。否则,格式为两个小数位。
有没有办法按如下方式设置小数的格式:
100 -> "100"
100.1 -> "100.10"
如果是整数,请省略小数部分。否则,格式为两个小数位。
我建议使用java.text包:
double money = 100.1;
NumberFormat formatter = NumberFormat.getCurrencyInstance();
String moneyString = formatter.format(money);
System.out.println(moneyString);
这具有特定于区域设置的额外好处。
但是,如果必须,如果它是一整美元,请截断您得到的字符串:
if (moneyString.endsWith(".00")) {
int centsIndex = moneyString.lastIndexOf(".00");
if (centsIndex != -1) {
moneyString = moneyString.substring(1, centsIndex);
}
}
double amount =200.0;
Locale locale = new Locale("en", "US");
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance(locale);
System.out.println(currencyFormatter.format(amount));
或
double amount =200.0;
System.out.println(NumberFormat.getCurrencyInstance(new Locale("en", "US"))
.format(amount));
显示货币的最佳方式
输出
$200.00
如果您不想使用 sign,请使用此方法
double amount = 200;
DecimalFormat twoPlaces = new DecimalFormat("0.00");
System.out.println(twoPlaces.format(amount));
200.00
这也可以使用(带千位分隔符)
double amount = 2000000;
System.out.println(String.format("%,.2f", amount));
2,000,000.00