繁体   English   中英

使用默认区域设置使用 DecimalFormat 舍入 2 个小数位

[英]Rounding 2 decimal places with DecimalFormat using default Locale

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

DecimalFormat dFormat = (DecimalFormat) NumberFormat.getInstance(Locale.getDefault());
etPayment.setText(dFormat.format(p)); // How would I do it on this line?
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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM