Java NumberFormatException旧版代码

时间:2015-04-22 13:56:02

标签: java exception numbers locale numberformatexception

我有一个在Tomcat / Jboss下运行的遗留程序(java 1.4),但是,我将它复制到一个新的服务器(java 1.7),它会抛出以下异常。

java.lang.NumberFormatException: For input string: "0000000000000000009011,00"
    sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1250)
    java.lang.Double.valueOf(Double.java:504)
    java.lang.Double.<init>(Double.java:597)

由于我无权访问源代码,有什么办法可以解决这个问题吗?我暂时没有尝试使用java 1.4

3 个答案:

答案 0 :(得分:0)

我认为这不是因为java版本。将comma(,)替换为""period(.)

例如考虑一个字符串:String str = "0000000000000000009011,00";

现在你可以试试 -

double result = Double.valueOf(str.replace(",", "."));

double result = Double.valueOf(str.replace(",", ""));

答案 1 :(得分:0)

而是使用NumberFormat进行解析:

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("0000000000000000009011,00");
double d = number.doubleValue();

这样,您可以为数字表示选择正确的区域设置。在上面的例子中,我使用了法国 - 他们使用逗号作为小数点。

答案 2 :(得分:0)

您应该查看旧服务器上的jvm参数。您的语言参数会将逗号更改为实际点,因此您不需要更改任何代码。