我无法将长整数(美分)转换为货币格式。
我的代码:
long doublePayment = 1099; //Should equal $10.99
DecimalFormat dFormat = new DecimalFormat();
String formattedString = dFormat.format(doublePayment);
System.out.println(formattedString);
输出:1,099
我也试过:
long doublePayment = 1099;
NumberFormat n = NumberFormat.getCurrencyInstance(Locale.US);
String s = n.format(doublePayment);
System.out.println(s);
因为这是美分,所以输出应该是 10.99 或 10.99 美元。
无法弄清楚我做错了什么。谢谢!!!
最佳答案
如果您需要很长时间才能开始,您仍然应该使用 java.math.BigDecimal。
long doublePayment = 1099;
BigDecimal payment = new BigDecimal(doublePayment).movePointLeft(2);
System.out.println("$" + payment); // produces: $10.99
再一次大声说出来:永远不要使用浮点变量来存储货币/货币值(value)。
关于Java 将 long 转换为 currency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12560629/