前言
Java的大数计算学习笔记
创建对象
<num>:任何类型的数字,如:String、byte、short、int、long,提倡使用String类型的构造方法
创建大整型对象
1
| BigInteger bigInteger = new BigInteger(<num>);
|
创建大浮点型对象
1
| BigDecimal bigDecimal = new BigDecimal(<num>);
|
创建的同时进行进位转换
<num>:String类型的数字
<carry_old>:原数的进位数
<carry_new>:改变后的进位数
1
| String bigInteger = new BigInteger(<num>, <carry_old>).toString(<carry_new>);
|
转换为其他基本类型的数字
1
| bigInteger.doubleValue()
|
实例方法
返回当前大整数的绝对值
返回当前大整数的相反数
返回两个大整数的和
1 2 3
| BigInteger bigInteger_1 = new BigInteger(<num>); BigInteger bigInteger_2 = new BigInteger(<num>); bigInteger_1.add(bigInteger_2);
|
返回两个大整数的差
1 2 3
| BigInteger bigInteger_1 = new BigInteger(<num>); BigInteger bigInteger_2 = new BigInteger(<num>); bigInteger_1.subtract(bigInteger_2);
|
返回两个大整数的积
1 2 3
| BigInteger bigInteger_1 = new BigInteger(<num>); BigInteger bigInteger_2 = new BigInteger(<num>); bigInteger_1.multiply(bigInteger_2);
|
返回两个大整数的商
1 2 3
| BigInteger bigInteger_1 = new BigInteger(<num>); BigInteger bigInteger_2 = new BigInteger(<num>); bigInteger_1.divide(bigInteger_2);
|
BigDecimal除不尽时四舍五入
bigDecimal1:被除数
bigDecimal2:除数
<num>:保留小数点后的位数
BigDecimal.ROUND_UP:向上取整
BigDecimal.ROUND_DOWN:向下取整
BigDecimal.ROUND_HALF_UP:四舍五入
1
| bigDecimal1.divide(bigDecimal2, <num>, BigDecimal.ROUND_HALF_UP);
|
返回当前大整数的乘方
<num>:指数
1
| bigInteger.power(<num>);
|
返回当前大整数的模
<num>:除数
1
| bigInteger.remainder(<num>)
|
返回大整数的最大公约数
1 2 3
| BigInteger bigInteger_1 = new BigInteger(<num>); BigInteger bigInteger_2 = new BigInteger(<num>); bigInteger_1.gcd(bigInteger_2);
|
返回两个大整数的最大者
1 2 3
| BigInteger bigInteger_1 = new BigInteger(<num>); BigInteger bigInteger_2 = new BigInteger(<num>); bigInteger_1.max(bigInteger_2);
|
返回两个大整数的最小者
1 2 3
| BigInteger bigInteger_1 = new BigInteger(<num>); BigInteger bigInteger_2 = new BigInteger(<num>); bigInteger_1.min(bigInteger_2);
|
将当前大整数转换成十进制的字符串形式
完成
参考文献
博客园——小小范同学
CSDN——大前端码农的自我修养