Android 格式化任意位置的十进制数
我正在尝试设置一个十进制数字的格式,以显示设备所在位置的格式。我还希望这个十进制数字四舍五入到最接近的10位,如果是0,则不显示第10位 我想我很接近了。我现在拥有的是:Android 格式化任意位置的十进制数,android,locale,number-formatting,Android,Locale,Number Formatting,我正在尝试设置一个十进制数字的格式,以显示设备所在位置的格式。我还希望这个十进制数字四舍五入到最接近的10位,如果是0,则不显示第10位 我想我很接近了。我现在拥有的是: NumberFormat numberFormat = NumberFormat.getInstance(getResources().getConfiguration().locale); if (numberFormat instanceof DecimalFormat) { ((DecimalFormat)nu
NumberFormat numberFormat = NumberFormat.getInstance(getResources().getConfiguration().locale);
if (numberFormat instanceof DecimalFormat) {
((DecimalFormat)numberFormat).setDecimalSeparatorAlwaysShown(true);
((DecimalFormat)numberFormat).applyPattern("0.#");
}
myText.setText(numberFormat.format(myValue));
但是,如果我的数字大于1000 ex:1000.5,TextView将显示1000.5,而不是我在美国时的1000.5
有人能给我解释一下原因吗?您应该打电话确认分组已打开
NumberFormat numberFormat = NumberFormat.getInstance(getResources().getConfiguration().locale);
if (numberFormat instanceof DecimalFormat) {
final DecimalFormat df = (DecimalFormat)numberFormat;
df.setDecimalSeparatorAlwaysShown(true);
df.setGroupingUsed(true);
df.applyPattern("0.#");
}
myText.setText(numberFormat.format(myValue));
谢谢你的回复。我遵循了您的示例,但TextView仍显示1000.5。