字符串以加倍语言环境错误

时间:2011-08-26 22:50:13

标签: android string double

在我的应用中,我使用文本框输入十进制数值。

从那里开始,我使用

Double.valueOf();

将值作为double。这样可以正常工作,但是一些具有不同语言环境的用户会收到错误。

如何确保不会发生这种情况?另外,我应该使用Double.ParseDouble()还是Double.valueOf()?

感谢。

1 个答案:

答案 0 :(得分:1)

我使用以下Java方法来解析已经存在的double 由用户键入并存储在字符串s中。

但是,我知道用户正在使用的语言环境。如果你不 知道然后很难确定如何解析数字 因为诸如“100.000”之类的值意味着不同的东西 在不同的地区。

NumberFormat numberFormat = DecimalFormat.getInstance(locale);
numberFormat.setGroupingUsed(false);
ParsePosition parsePosition = new ParsePosition(0);
Number n = numberFormat.parse(s, parsePosition);
if (n == null || parsePosition.getErrorIndex() >= 0 || parsePosition.getIndex() < s.length())
{
  /* not a valid number */
}