google-code-export / nutz

Automatically exported from code.google.com/p/nutz
Apache License 2.0
1 stars 1 forks source link

Lang的str2number方法在某些情况下会出错 #493

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
1)代码如下
    System.out.println(Lang.str2number("2147483648"));//该数的值为Integer.MAX_VALUE+1

则会在控制台报错
Exception in thread "main" java.lang.NumberFormatException: For input string: 
"2147483648"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:465)
    at java.lang.Integer.valueOf(Integer.java:554)
    at org.nutz.lang.Lang.str2number(Lang.java:1409)
    at testEL.main(testEL.java:14)

2)代码如下
    System.out.println(Lang.str2number("9223372036854775807"));//该数的值为Long.MAX_VALUE

初步判断是该方法的“return Integer.valueOf(s);”造成的。

请问这种情况需要修改这个bug么?

Original issue reported on code.google.com by ywjno....@gmail.com on 7 Jun 2011 at 9:20

GoogleCodeExporter commented 9 years ago
Fix in r2116

add Test:
org.nutz.lang.LangTest.test_str2number()

Original comment by wendal1985@gmail.com on 7 Jun 2011 at 10:46