BigInteger: 用于存储过大的整数(弥补整型存储数据不足的限制)
import org.junit.Test;
import java.math.BigInteger;
public class TestBigInteger {
@Test
public void test03(){
int m = 20;
int n = 10;
System.out.println("(m + n) = " + (m + n));
//创建两个BigInteger类型的对象
BigInteger b1 = new BigInteger("10");
BigInteger b2 = new BigInteger("20");
BigInteger add = b1.add(b2);
System.out.println("加法 add = " + add);
BigInteger subtract = b2.subtract(b1);
System.out.println("减法 substrct" + subtract);
BigInteger multiply = b1.multiply(b2);
System.out.println("乘法 multiply = " + multiply);
BigInteger divide = b1.divide(b2);
System.out.println("除法 divide = " + divide);
BigInteger remainder = b1.remainder(b2);
System.out.println("取模 remainder = " + remainder);
//将BigInteger ----> int
int i = b2.intValue();
System.out.println("i = " + i);
}
@Test
public void test2(){
//创建BigInteger对象
BigInteger big1 = new BigInteger("12345678909876543212345678");
System.out.println("big1 = " + big1);
}
@Test
public void test3(){
long l = 123123455;
System.out.println("l = " + l);
long l1 = 922_3372_0368_5477_5807L;
System.out.println("l1 = " + l1);
}
}
BigDecimal: 更加精确的小数
1.创建对象
2.数学操作 加减乘除
注意: 如果是无限小数 1. 指定 保留的小数位数 2. 确定 舍入模式 b1.divide(b2,保留的小数位数 ,舍入模式);
public class BigDecimalTest {
@Test
public void test4(){
BigDecimal b1 = new BigDecimal("10.0");
BigDecimal b2 = new BigDecimal("3.0");
// RoundingMode 摄入模式 可以使用 RoundingMode.的方式调用不同的方法
BigDecimal divide = b1.divide(b2, 200, RoundingMode.FLOOR);
System.out.println("divide = " + divide);
}
@Test
public void test3(){
//创建对象
BigDecimal b1 = new BigDecimal("10.0");
BigDecimal b2 = new BigDecimal("5.0");
//数字操作
System.out.println("加法 b1.add(b2) = " + b1.add(b2));
System.out.println("减法 b1.subtract(b2) = " + b1.subtract(b2));
System.out.println("乘法 b1.multiply(b2) = " + b1.multiply(b2));
System.out.println("除法 b1.divide(b2) = " + b1.divide(b2));
System.out.println("取模 b2.remainder(b1) = " + b2.remainder(b1));
// BigDecimal---> double
double doubleValue = b1.doubleValue();
System.out.println("doubleValue = " + doubleValue);
}
@Test
public void test2(){
BigDecimal bigDecimal = new BigDecimal("3.333333333333333333333333333333");
System.out.println("bigDecimal = " + bigDecimal);
}
@Test
public void test1(){
//精度不够超过了double类型存储的最大值
double d = 3.3333333333333333333333;
System.out.println("d = " + d);
}
}