前言
BigInteger/BigDecimal 学习笔记
创建对象
<num>
:任何类型的数字,如:String
、byte
、short
、int
、long
,提倡使用String类型的构造方法
1
| BigInteger bigInteger = new BigInteger(<num>);
|
创建的同时进行进位转换
<num>
:String类型的数字
<carry_old>
:原数的进位数
<carry_new>
:改变后的进位数
1
| String bigInteger = new BigInteger(<num>, <carry_old>).toString(<carry_new>);
|
转换为其他基本类型的数字
1 2 3 4 5 6
| bigInteger.byteValue() bigInteger.shortValue() bigInteger.intValue() bigInteger.longValue() bigInteger.floatValue() 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);
|
返回当前大整数的乘方
<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);
|
将当前大整数转换成十进制的字符串形式
BigDecimal除不尽时四舍五入
bigDecimal_1
:被除数
bigDecimal_2
:除数
<num>
:保留小数点后的位数
1
| bigDecimal_1.divide(bigDecimal_2, <num>, BigDecimal.ROUND_HALF_UP);
|
参考文献
博客园——小小范同学
CSDN——大前端码农的自我修养