淘先锋技术网

首页 1 2 3 4 5 6 7

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