Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 格式化任意位置的十进制数_Android_Locale_Number Formatting - Fatal编程技术网

Android 格式化任意位置的十进制数

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

我正在尝试设置一个十进制数字的格式,以显示设备所在位置的格式。我还希望这个十进制数字四舍五入到最接近的10位,如果是0,则不显示第10位

我想我很接近了。我现在拥有的是:

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。