最近遇到如下错误:
客户反映如果数字调小就不报错,如果数字调大就报错,
定位代码后发下:出错位置
Integer.valueOf(number)
初步判断是数字超过Integer类型的最大值
科普:java的Integer(int)的数值范围: 【-2的31次方(-2147483648),2的31次方减一(2147483647)
查看日志发现是字符串内容为空造成的
?
代码验证如下?
?代码如下:
package test;
public class IntegerTest {
public static void main(String[] args) {
String s0 = "1";
String s1 = "1000";
String s2 = "1000000";
String s3 = "10000000000";
System.out.println(Integer.valueOf(s0));
System.out.println(Integer.valueOf(s1));
System.out.println(Integer.valueOf(s2));
System.out.println(Integer.valueOf(s3));
}
}
?
?
参考文章
(143条消息) java 字符串里是带一个小数“0”的数,通过去掉“.0”出现的问题_爱的叹息的博客-CSDN博客https://burns.blog.csdn.net/article/details/123878164
|