【发布时间】:2017-05-03 23:15:39
【问题描述】:
尝试解析诸如“15,7”之类的数字时出现 NumberFormatException。这将是美国或英国格式的“15.7”。 我尝试从 PC 中检索语言环境并基于此进行解析,如下所示:
if (strCountry.equals("IT")) {
locale = java.util.Locale.ITALIAN;
} else {
locale = java.util.Locale.ENGLISH;
}
NumberFormat m_nf = NumberFormat.getInstance(locale);
m_nf.setMaximumFractionDigits(1);
通过日志记录,我确认系统返回“IT”作为国家。然后像这样尝试解析:
Double nCount = new Double(m_nf.format(total_ff));
但是,这是引发异常的地方,因为逗号被用作小数点。我错过了什么吗?谢谢!
【问题讨论】:
-
尝试查看浮点数变量。
-
@MadeInDreams 用双精度代替浮点数?
-
这取决于你想用它做什么。但是,是的,您应该使用浮动。要查看 javascript 是否看到了类似的值,您始终可以使用 typeof。它将返回它被解释为的数字类型。
-
他没有在任何地方提到jqvascript,他正在使用java
标签: java locale numberformatexception decimalformat