BigInteger 和 BigDecimal 介绍
应用场景
- BigInteger适合保存比较大的整型
- BigDecimal适合保存精度更高的浮点型(小数)
BigInteger 和 BigDecimal 常见方法
- 1,add 加
- 2,subtract 减
- 3,multiply 乘
- 4,divide 除
BigInteger方法:
public class BigInteger_ {public static void main(String[] args) {//当我们编程中,需要处理很大的整数,long 不够用//可以使用 BigInteger 的类来搞定//报错 long i = 23788888899999999999999999999l; 数字太大BigInteger bigInteger = new BigInteger("237888888999999999999999999991");System.out.println(bigInteger);//在对BigInteger 进行操作时,需要使用对应的方法,不能直接用运算符;//可以创建一个要操作的 BigInteger 然后进行相应的操作BigInteger bigInteger1 = new BigInteger("1111111111111111111111");//加 bigInteger1+bigIntegerBigInteger add = bigInteger1.add(bigInteger);System.out.println(add);//237888888999999999999999999991+1111111111111111111111//减 bigInteger1-bigIntegerBigInteger subtract = bigInteger1.subtract(bigInteger);System.out.println(subtract);//乘 bigInteger1*bigIntegerBigInteger multiply = bigInteger1.multiply(bigInteger);System.out.println(multiply);//除 bigInteger1/bigIntegerBigInteger divide = bigInteger1.divide(bigInteger);System.out.println(divide);}
}
结果
BigDecimal方法:
public class BigDecimal_ {public static void main(String[] args) {//当我们需要保存一个精度很高的数,double不够用时,可以使用BigDecimaldouble d = 1999.11111111111999999999999977788222222;//输出 1999.11111111112 只能保存小数点后11位小数System.out.println(d);BigDecimal bigDecimal = new BigDecimal("1999.11111111111999999999999977788222222");// 输出 1999.11111111111999999999999977788222222System.out.println(bigDecimal);//如果对 BigDecimal 进行运算,比如加减乘除,需要使用对应的方法,// 创建一个需要操作的 BigDecimal 然后调用相应的方法即可BigDecimal bigDecimal1 = new BigDecimal(3);//bigDecimal+bigDecimal1System.out.println(bigDecimal.add(bigDecimal1));//bigDecimal-bigDecimal1System.out.println(bigDecimal.subtract(bigDecimal1));System.out.println(bigDecimal.multiply(bigDecimal1));//System.out.println(bigDecimal.divide(bigDecimal1));//会抛出异常ArithmeticException,因为可能为无限循环小数//解决办法://在调用divide方法时,指定精度即可 BigDecimal.ROUND_CEILING,这样出现无限循环小数时,就会保留分子精度System.out.println(bigDecimal.divide(bigDecimal1,bigDecimal.ROUND_CEILING));}
}
结果