我有一个使用千位分隔符 (,) 和小数分隔符 (.) 的应用程序,我在 2 台平板电脑上使用了这个应用程序,它们的配置具有相同的语言 (Español),当我在第一个平板电脑上使用 15,000.00 之类的数字进行一些处理时答案是正确的,但在第二个平板电脑中,数字变为 15,00。我将第二个的语言更改为英语,并且可以正常工作,但是如何在代码上设置此数字格式?
抱歉,这不是我的母语。
谢谢您的帮助
我有一个使用千位分隔符 (,) 和小数分隔符 (.) 的应用程序,我在 2 台平板电脑上使用了这个应用程序,它们的配置具有相同的语言 (Español),当我在第一个平板电脑上使用 15,000.00 之类的数字进行一些处理时答案是正确的,但在第二个平板电脑中,数字变为 15,00。我将第二个的语言更改为英语,并且可以正常工作,但是如何在代码上设置此数字格式?
抱歉,这不是我的母语。
谢谢您的帮助
您可以像这样在代码中格式化双精度值:
/**
* format a number properly
* @param number
* @return
*/
public String formatDecimal(double number) {
DecimalFormat nf = new DecimalFormat("###.###.###.##0,00");
// or this way: nf = new DecimalFormat("###,###,###,##0.00");
String formatted = nf.format(number);
return formatted;
}
然后将其设置为 TextView:
mytextview.setText("MyDouble: " + formatDecimal(somedouble));
您可以使用格式化
NumberFormat nf = NumberFormat.getInstance(new Locale("es", "MX")); //for example
但请注意,因为根据语言环境,即使是相同的语言但不同的国家/地区,十进制字符和分组字符也会发生变化,例如
NumberFormat nf = NumberFormat.getInstance(new Locale("es", "CO")); //displays 15.000,00
您可以获取android 文档指定的特定语言环境的实例:
NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
但是,在向用户 imho 显示内容时,您不应该更改语言环境。