原因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);