使用默认Locale使用DecimalFormat舍入2个小数位

时间:2015-01-24 20:58:41

标签: java android decimalformat

无论语言环境如何,我怎样才能获得两位小数。我知道如果我愿意,我可以使用DecimalFormat手动格式化"0.00",但我希望在用户的语言环境中获得正确的十进制类型并将其舍入到两个位置。

DecimalFormat dFormat = (DecimalFormat) NumberFormat.getInstance(Locale.getDefault());
etPayment.setText(dFormat.format(p)); // How would I do it on this line?

2 个答案:

答案 0 :(得分:3)

DecimalFormat currencyFormatter = (DecimalFormat) NumberFormat.getInstance(Locale.getDefault());

currencyFormatter.setMaximumFractionDigits(2); // << This should
currencyFormatter.setMinimumFractionDigits(2); // << do the trick

System.out.println(currencyFormatter.format(-123456.7812));

将输出:

-123,456.78

或者,如果您有Locale.GERMANY的区域设置:

-123.456,78

<强>更新 我在这里为你准备了一个在线java测试http://goo.gl/wq7aa5 您所要做的就是按:compileexecute。希望你喜欢它。

更新:(简单复制和粘贴)

DecimalFormat dFormat = (DecimalFormat) NumberFormat.getInstance(Locale.getDefault());
dFormat.setMaximumFractionDigits(2); // << This should
dFormat.setMinimumFractionDigits(2); // << do the trick
etPayment.setText(dFormat.format(p));

答案 1 :(得分:-1)

尝试DecimalFormat dFormat = new DecimalFormat("#.00");