【发布时间】:2011-12-10 19:28:23
【问题描述】:
我遇到了将区域设置设置为非美国国家/地区的用户在将双精度值与字符串转换时出错的问题。到目前为止,我相信我有正确的方法将字符串转换为双精度:
public double stringToDouble(String s){
try {
return NumberFormat.getInstance(Locale.getDefault()).parse(s).doubleValue();
} catch (ParseException e) {
e.printStackTrace();
return 0.0;
}
}
这是从 EditText 框中获取输入并将其转换为双精度。但是,我在将双打转换回字符串以填充其他 EditText 框时遇到问题。这是我正在使用的用户报告崩溃的代码:
public String doubleToString(double d, String pattern){
DecimalFormat df =(DecimalFormat) NumberFormat.getInstance(Locale.getDefault());
df.applyLocalizedPattern(pattern);
return df.format(d);
}
我根据编辑文本框的小数位数使用模式字符串,例如“#0.00”
我无法弄清楚导致崩溃的原因,我什至无法自己测试它,因为我的设备上没有这些语言环境。
任何帮助将不胜感激!
【问题讨论】:
-
我没有回答您的问题,但您可以通过设置 Android 模拟器的语言/区域设置并运行您的应用程序来使用其他区域设置进行测试。
标签: android string double locale