BigDecimal类
大数据中的大小数
BigIiteger类
大数据中的大整数
定义大数据中的大正数和大小数:
public static void main(String[] args) {
//BigIiteger类
//大数据中的加减乘除
BigInteger bigInteger1 = new BigInteger("123456789123456789123");
BigInteger bigInteger2 = new BigInteger("1234567891234567891230");
//相加运算 add()
BigInteger add = bigInteger1.add(bigInteger2);
System.out.println("add = " + add);//add = 1358024680358024680353
//减法运算 subtract()
BigInteger subtract = bigInteger2.subtract(bigInteger1);
System.out.println("subtract = " + subtract);//subtract = 1111111102111111102107
//乘法运算 multiply()
BigInteger multiply = bigInteger1.multiply(bigInteger1);
System.out.println("multiply = " + multiply);//multiply = 15241578780673678545992990874560891109129
//除法运算 divide()
BigInteger divide = bigInteger2.divide(bigInteger1);
System.out.println("divide = " + divide);//divide = 10
//BigDecimal类 大小数
//有些时候操作小数的时候,会出现精度损失问题
System.out.println(0.09 + 0.01);//0.09999999999999999
System.out.println(1.231 * 100);//123.10000000000001
BigDecimal bigDecimal1 = new BigDecimal("0.09");
BigDecimal bigDecimal2 = new BigDecimal("0.01");
//相加 add()
BigDecimal add1 = bigDecimal1.add(bigDecimal2);
System.out.println("add1 = " + add1);//add1 = 0.10
//相减 subtract()
BigDecimal subtract1 = bigDecimal1.subtract(bigDecimal2);
System.out.println("subtract1 = " + subtract1);//subtract1 = 0.08
//乘法运算 multiply()
BigDecimal multiply1 = bigDecimal1.multiply(bigDecimal2);
System.out.println("multiply1 = " + multiply1);//multiply1 = 0.0009
//除法运算 divide()
BigDecimal divide1 = bigDecimal1.divide(bigDecimal2);
System.out.println("divide1 = " + divide1);//divide1 = 9
}
运行结果:
add = 1358024680358024680353
subtract = 1111111102111111102107
multiply = 15241578780673678545992990874560891109129
divide = 10
0.09999999999999999
123.10000000000001
add1 = 0.10
subtract1 = 0.08
multiply1 = 0.0009
divide1 = 9