原因1:
Integer在32位的编译环境下,存储长度为32位。即-231~231-1; 即-2,147,483,648~2,147,483,647,此时将Integer换成BigInteger类型
解决:
String a = "12345678910";
BigInteger b = new BigInteger(a); //String 转换为 BigInteger
原因2:
string内部不是Integer,是double
if(s.indexOf(".")!= -1) {
System.out.println(s.indexOf(".")+1);
System.out.println(Integer.valueOf(s.substring(s.indexOf(".")+1)));
if( Integer.valueOf(s.substring(s.indexOf(".")+1))>0) {//小数点后大于0
System.out.println("no1");
}
else if( Integer.valueOf(s.substring(0, s.indexOf("."))) % 10000 > 0) {
System.out.println("no2");
}
}
else if( Integer.valueOf(s) % 10000 > 0){
System.out.println("no3");
}
System.out.println("ok");
或者用Double类转化
Double.parseDouble(n.equals("")?"0":n);