BigInteger和BigDecimal的概述
BigInteger概述
可以超过Integer范围的数据进行运算
注意:运算时只能是BigInteger类型的数进行运算
构造方法
1. public BigInteger(String val)
成员方法
BigInteger add() 加
BigInteger subtract() 减
BigInteger multiply() 乘
BigInteger divide() 除
BigInteger[] divideAndRemainder() 获取商 和 除 存储在数组中
方法演示
public class BigNum {
public static void main(String[] args) {
BigInteger b1 = new BigInteger("100");
BigInteger b2 = new BigInteger("2");
System.out.println(b1.add(b2)); // +
System.out.println(b1.subtract(b2)); // -
System.out.println(b1.multiply(b2)); // *
System.out.println(b1.divide(b2)); // 除
BigInteger[] arr = b1.divideAndRemainder(b2); // 获取商和余数,存储在数组中
System.out.println(Arrays.toString(arr)); // 打印商和余数
}
}
BigDecimal的概述
由于在运算的时候,float类型和double很容易丢失精度
所以,为了能精确的表示,计算浮点数,Java提供了BigDecimal特点:不可变的、任意精度的有符号的十进制数
构造方法
1.public BigDecimal(String val)
成员方法
BigDecimal add(String val) 加
BigDecimal subtract(String val) 减
BigDecimal multiply(String val) 乘
BigDecimal divide(String val) 除,因为它有无穷的十进制扩展,如果除不尽则抛出抛出 ArithmeticException异常
方法演示
public static void main(String[] args) {
// demo1();
BigDecimal bd1 = new BigDecimal("2.0"); // 通过构造中传入字符串的方式 开发时推荐使用
BigDecimal bd2 = new BigDecimal("1.1"); //
System.out.println(bd1.add(bd2)); // +
System.out.println(bd1.subtract(bd2)); // -
System.out.println(bd1.multiply(bd2)); // *
System.out.println(bd1.divide(bd2)); // 除 因为2.0 除以 1.1 除不尽 所以抛出 ArithmeticException异常
}