一.BigInteger
1.
int s = 99;
BigInteger a = BigInteger.valueOf(s);
则a = 99
BigInteger[] dd = new BigInteger[500];开辟大数数组
2. String a;
BigInteger b = new BigInteger(a, n); 把n进制的a串转换成大数十进制
3.
BigInteger a = cin.nextBigInteger(n);
以n进制读入大数 最多32进制
String b = a.toString(n);
把a转成n进制的字符串 最多32进制
可以用toUpperCase把进制数字中的字母变成大写
4.
add(a) subtract(a) multiply(a) divide(a) remainder(a) mod(a) pow(int)
幂运算取模modpow(a, b)
最大公约数gcd()
取绝对值abs()
相反数negate()
大小值max() min()
and() 按位与
or() 按位或
二.BigDecimal
1.
禁用.valueOf(double)方式进行构造
建议使用.valueOf(string)或者 .valueOf(int)
a.divide(b, 小数点保留位数, 处理模式)
(1)最后一位大于零则向前进位 ROUND_UP
(2)省略最后一位 ROUND_DOWN
(3)ROUND_CEILING结果为正则进位为负则省略
(4)最后一位五舍六入ROUND_HALF_DOWN
(5)最后一位四舍五入ROUND_HALF_UP
(6)ROUND_HALF_EVEN 倒数第二位为奇数则四舍五入 为偶数则五舍六入
(7)ROUNMD_FLOOR 与(3)相反
2.
a.stripTrailingZeros();去掉小数末尾的零
a.stripTrailingZeros().toString();
省略末尾零转为字符串可以防止大数太长而以科学记数法方式输出