BigInteger与BigDecimal
/**
* 处理高精度有小数
*/
static void dec() {
//构造,建议使用String值
BigDecimal b1 = new BigDecimal("5.5");
BigDecimal b2 = new BigDecimal("3.3");
//加
BigDecimal b = b1.add(b2);
//减
b1.subtract(b2);
//乘
b1.multiply(b2);
//除
// 除法有三个参数,第二个是精度,即保留的小数位数;第三个时舍入模式。值从0-7,可用静态变量名代替
// 5.5/3.3=1.666666666...
// 0---ROUND_UP---始终增加1---1.67
// 1---ROUND_DOWN---相当于截断---1.666
// 2---ROUND_CEILING---如果为正,始终增加1;如果为负,则截断---1.667
// 3---ROUND_FLOOR---如果为正,则截断;如果为负,始终增加1--1.666
// 4---ROUND_HALF_UP---四舍五入---1.667
// 5---ROUND_HALF_DOWN---五舍六入---1.667
// 6---ROUND_HALF_EVEN---如果前一位为奇数则四舍五入,如果为偶数则五舍六入---1.667
// 7---ROUND_UNNECESSARY---断言请求的操作具有精确的结果,因此不需要舍入,如果对获得精确结果的操作指定此舍入模式---抛出ArithmeticException
b1.divide(b2, 3, 3);
//求余,用在BigInteger
//b1.remainder(b2);
//其他运算
b1.abs();//绝对值
b1.negate();//相反数
b1.pow(2);//指数运算
b1.movePointLeft(1);//小数点向左移动一位,右移是right
//比较
b1.max(b2);//返回值大的,min返回值小的
b1.compareTo(b2);//大于返回1,小于返回-1,相等是0
//转化
b1.toBigInteger();//
b1.toString();
b1.doubleValue();
b1.longValue();
}
/**
* 大整型BigInteger,基本类似
*/