Java 使用默认语言环境使用十进制格式舍入2位小数

Java 使用默认语言环境使用十进制格式舍入2位小数,java,android,decimalformat,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 li

无论语言环境如何,我怎么能只得到两位小数。我知道如果需要,我可以使用
DecimalFormat
手动设置格式,如
“0.00”
,但我希望在用户的区域设置中获得正确的十进制类型并四舍五入到两位

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

尝试
DecimalFormat dFormat=newdecimalformat(#.00”)

或者如果您有类似于
locale.GERMANY的语言环境:

-123.456,78
更新:(简单复制和粘贴)

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

数据格式setMaximumFractionDigits(2);//我在上面提到过,我可以做到这一点,但这并没有考虑到所有用户的语言环境。有些用户宁愿看到
0,00
,而不是
0.00
。我的问题是,是否有一种通用的方法来取整和使用默认语言环境。也许吧?@VGR我完全忘了。我以前用过。出于某种原因,我的IDE(Android Studio)无法识别其中的任何set函数?
-123,456.78
-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));