读书人

int数组转数目字

发布时间: 2012-09-06 10:37:01 作者: rapoo

int数组转数字

//把正数当成负数来弄,避免逼近正数maxvalue产生的麻烦                int[] digits = new int[]{5,3,4,7,9,11};long limit = -Long.MAX_VALUE;long result = 0;int i=0;result = -digits[i];for(i=1;i<digits.length;i++){result *= 10;result -= digits[i];}

public Number getnum(){int[] digits = new int[]{5,3,4,7,9,11};long limit = -Long.MAX_VALUE;long result = 0;int i=0;result = -digits[i];for(i=1;i<digits.length;i++){if(result<limit){//如果result比最小值还小,说明溢出了return new BigInteger(new String(digits,0,digits.length));}result *= 10;if(result - digits[i]<limit){//运算之后溢出return new BigInteger(new String(digits,0,digits.length));}result -= digits[i];}return -result;}

读书人网 >编程

热点推荐