无论语言环境如何,我怎样才能获得两位小数。我知道如果我愿意,我可以使用DecimalFormat
手动格式化"0.00"
,但我希望在用户的语言环境中获得正确的十进制类型并将其舍入到两个位置。
DecimalFormat dFormat = (DecimalFormat) NumberFormat.getInstance(Locale.getDefault());
etPayment.setText(dFormat.format(p)); // How would I do it on this line?
答案 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
您所要做的就是按:compile
和execute
。希望你喜欢它。
更新:(简单复制和粘贴)
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");