【笔记】Java的BigInteger和BigDecimal

前言

Java的BigInteger和BigDecimal学习笔记

创建对象

<num>:任何类型的数字,如:Stringbyteshortintlong,提倡使用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
bigInteger.abs()

返回当前大整数的相反数

1
bigInteger.negate()

返回两个大整数的和

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);

将当前大整数转换成十进制的字符串形式

1
bigInteger.toString();

BigDecimal除不尽时四舍五入

bigDecimal_1:被除数
bigDecimal_2:除数
<num>:保留小数点后的位数

1
bigDecimal_1.divide(bigDecimal_2, <num>, BigDecimal.ROUND_HALF_UP);

完成

参考文献

博客园——小小范同学
CSDN——大前端码农的自我修养