不同Android设备返回的代码不一致

不同Android设备返回的代码不一致,android,Android,我使用下面的代码返回带有区域设置使用的正确符号的数字。例如,欧洲格式使用逗号而不是显示浮动/双精度的十进制。在设备上测试时,这段代码有效,但在Droid X上不起作用(所以我想知道还有多少其他手机会出现这种情况)。是否有人遇到此问题和/或可能有解决方案 代码如下: /** * <p>Converts doubles to twoDecimal points with proper notation per locale</p> * * @param double

我使用下面的代码返回带有区域设置使用的正确符号的数字。例如,欧洲格式使用逗号而不是显示浮动/双精度的十进制。在设备上测试时,这段代码有效,但在Droid X上不起作用(所以我想知道还有多少其他手机会出现这种情况)。是否有人遇到此问题和/或可能有解决方案

代码如下:

/**
 * <p>Converts doubles to twoDecimal points with proper notation per locale</p>
 * 
 * @param double 
 * @return converted number to 2 decimal points with proper notation 
 */
public static String getFormattedValue(double d) {
    Locale mLocale = getResources().getConfiguration().locale;

    String formattedString;
    NumberFormat nf = NumberFormat.getNumberInstance(mLocale);
    DecimalFormat df = (DecimalFormat)nf;
    df.applyPattern("###,###.##");

    formattedString = df.format(d);

    return formattedString;
}
/**
*将双精度转换为两个小数点,每个区域设置使用正确的表示法

* *@param-double *@使用正确的符号将转换后的数字返回到2个小数点 */ 公共静态字符串getFormattedValue(双d){ Locale mLocale=getResources().getConfiguration().Locale; 字符串格式化字符串; NumberFormat nf=NumberFormat.getNumberInstance(mLocale); DecimalFormat df=(DecimalFormat)nf; df.applyPattern(“###,###,##.#”); formattedString=df.format(d); 返回格式化字符串; }
我想我找到了答案。如果我手机的语言环境(language)设置为西班牙语并显示小数,则该语言环境实际上是西班牙语(美国)。如果显示逗号,则为欧洲西班牙语。我的Droid X列出了英语或西班牙语,而Nexus 1有Espanol(Espana)和Espanol(Estados Unidos)

我想我知道了。如果我手机的语言环境(language)设置为西班牙语并显示小数,则该语言环境实际上是西班牙语(美国)。如果显示逗号,则为欧洲西班牙语。我的Droid X列出了英语或西班牙语,而Nexus 1有Espanol(Espana)和Espanol(Estados Unidos)

你所说的Droid X上的“[代码不起作用]”是什么意思?
mLocale
当代码起作用时与Droid X上的“不起作用”是什么意思?如果我将电话语言设置为西班牙语,则上面的代码不会返回正确的数字符号(逗号而不是小数)。在我的应用程序之外,如果我进入“设置”并查看应用程序大小,手机不会使用逗号而不是小数。Nexus 1在两个实例中都显示逗号而不是小数。我将更新我的帖子并添加图片。Droid X上的“[代码不起作用]”是什么意思?
mLocale
当代码起作用时,与Droid X上的“不起作用”相比,如果我将电话语言设置为西班牙语,则上面的代码不会返回正确的数字符号(逗号而不是小数)。在我的应用程序之外,如果我进入“设置”并查看应用程序大小,手机不会使用逗号而不是小数。Nexus 1在两个实例中都显示逗号而不是小数。我会更新我的帖子,包括图片。