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