BigInteger类
BigInteger类的数字范围比Integer类的数字范围要大很多,一般用此方法处理更大的数字,且此类支持任意精度的整数
BigInteger b = new BigInteger("num");
//num指代数字
//注:数字的引号必须有
? 常用方法
方法 | 功能 |
---|---|
public BigInteger add(BigInteger val) | 做加法运算 |
public BigInteger subtract(BigInteger val) | 做减法运算 |
public BigInteger multiply(BigInteger val) | 做乘法运算 |
public BigInteger divide(BigInteger val) | 做除法运算 |
public BigInteger remainder(BigInteger val) | 做取余操作 |
public BigInteger[] divideAndRemainder(BigInteger val) | 用数组返回余数和商,结果数组中第一个值为商,第二个值为余数 |
public BigInteger pow(int exponent) | 进行取参数的exponent次方操作 |
public BigInteger negate() | 取相反数 |
public BigInteger shiftLeft(int n) | 将数字左移n位,若n为负数,则右移 |
public BigInteger shiftRight(int n) | 将数字右移n位,若n为负数,则左移 |
public BigInteger and(BigInteger val) | 做与操作 |
public BigInteger or(BigInteger val) | 做或操作 |
public BigInteger comperTo(BigInteger val) | 做数字比较操作 |
public BigInteger equals(Object x) | 当参数x是BigInteger类型的数字并且数值与对象实例的数值相等时,返回true |
public BigInteger min(BigInteger val) | 返回较小的数值 |
public BigInteger max(BigInteger val) | 返回较大的数值 |
示例如下
import java.math.BigInteger;
BigInteger b1 = new BigInteger("974562221548996532856");
BigInteger b2 = new BigInteger("8654865555555345");
System.out.println("加法操作:"+b1.add(b2));
System.out.println("减法操作:"+b1.subtract(b2));
System.out.println("乘法操作:"+b1.multiply(b2));
System.out.println("除法操作:"+b1.divide(b2));
System.out.println("取商:"+b1.divideAndRemainder(b2)[0]);
System.out.println("取余数:"+b1.divideAndRemainder(b2)[1]);
System.out.println("取二次方操作:"+b1.pow(2));
System.out.println("取相反数操作:"+b1.negate());
BigDecimal类
与BigInteger类不同的是,此方法加入了小数的概念。
常用构造化方法
BigDecimal(double val):实例化时将双精度浮点型转化为BigDecimal类型
BigDecimal(String val):实例化时将字符串形式转化为BigDecimal类型
? 常用方法
方法 | 功能 |
---|---|
add() | 加 |
subtract() | 减 |
multiply(BigDecimal mu) | 乘 |
divide() | 除 ()中包含3个参数,分别表示除数,商的小数点后的位数,近似处理模式 |
? divide()的多种处理模式
模式 | 含义 |
---|---|
RoundingMode.UP | 商的最后一位如果大于0,则向前进位,正负数都如此 |
RoundingMode.DOWN | 商的最后一位无论是什么数字都省略 |
RoundingMode.CEILNG | 商如果是正数,按照UP模式处理;若是负数,按照DOWN模式处理。这种模式处理都会是近似值待遇大于等于实际值 |
RoundingMode.FLOOR | 与CEILNG相反,商如果是正数,按照DOWN模式处理;若是负数,按照UP模式处理。这种模式处理都会是近似值待遇小于等于实际值 |
RoundingMode.HALF_DOWN | 对商进行四舍五入操作,小于等于5,舍;相反,进。如7.5≈7 |
RoundingMode.HALF_UP | 对商进行四舍五入操作,小于5,舍;相反,进。如7.5≈8 |
RoundingMode.HALF_EVEN | 若商倒数第二位为奇数,则按照HALF_UP模式处理;为偶数,按照HALF_DOWN模式处理。如7.5≈8;8.5≈8 |