构造方法:
//构造方法一 BigInteger bigInteger = new BigInteger(String str); //构造方法二 BigInteger bigInteger = BigInteger.valueOf(int x);
常用API:
//实现加法运算 BigInteger add(BigInteger other) //减法运算 BigInteger subtract(BigInteger other) //乘法运算 BigInteger multiply(BigInteger other) //除法运算 BigInteger divide(BigInteger other) //取模运算 BigInteger mod(BigInteger other) //与另一个大数相比较,若相等返回0,小返回-1,大返回1 int compareTo(BigInteger other)' //将基本的整形变成整形大数,返回值等于x的大数 static BigInteger valueOf(long x)
代码示例:
public static void main(String[] args) { //整形大数 //构造方法一 BigInteger bigInteger = new BigInteger("1234567890234321"); System.out.println(bigInteger); //构造方法二 BigInteger bigInteger1 = BigInteger.valueOf(100); System.out.println(bigInteger1); //加:1234567890234321+100+100 BigInteger sum = bigInteger.add(bigInteger1).add(BigInteger.valueOf(100)); System.out.println(sum); //减1234567890234321-1234567890234321-100 = -100 BigInteger sub = bigInteger.subtract(bigInteger).subtract(BigInteger.valueOf(100)); System.out.println(sub); //乘 BigInteger mut = bigInteger.multiply(BigInteger.valueOf(0)).add(bigInteger1); System.out.println(mut); //除 BigInteger divide = bigInteger.divide(bigInteger); System.out.println(divide); //取模 BigInteger mod = bigInteger.mod(BigInteger.valueOf(2)); System.out.println(mod); //比较 int i = bigInteger1.compareTo(BigInteger.valueOf(100)); System.out.println(i); int i1 = bigInteger1.compareTo(BigInteger.valueOf(90)); System.out.println(i1); int i2 = bigInteger1.compareTo(BigInteger.valueOf(110)); System.out.println(i2); }
结果:
构造方法:
BigDecimal bigDecimal = new BigDecimal(int x); BigDecimal bigDecimal1 = new BigDecimal(double x); BigDecimal bigDecimal2 = new BigDecimal(String str); BigDecimal bigDecimal3 = new BigDecimal(BigInteger integer);
常用API:
BigDecimal add(BigDecimal other) //减法运算 BigDecimal subtract(BigDecimal other) //乘法运算 BigDecimal multiply(BigDecimal other) //除法运算 //如果商是个寻仙循环的小数时,程序会抛出异常 BigDecimal divide(BigDecimal other) //得到一个舍入的结果,如果是四舍五入,那么第二个参数是RoundingMode.HALF_UP BigDecimal divide(BigDecimal other,RoundingMode mode) //与另一个大数相比较,若相等返回0,小返回-1,大返回1 int compareTo(BigDecimal other)' //将基本的整形变成整形大数,返回值等于x的大数 static BigDecimal valueOf(long x)
代码示例:
//构造方式 BigDecimal bigDecimal = new BigDecimal(1000); BigDecimal bigDecimal1 = new BigDecimal(100.1); BigDecimal bigDecimal2 = new BigDecimal("10002"); BigDecimal bigDecimal3 = new BigDecimal(bigInteger1); System.out.println(bigDecimal); System.out.println(bigDecimal1); System.out.println(bigDecimal2); System.out.println(bigDecimal3); //加 BigDecimal add = bigDecimal.add(bigDecimal1); System.out.println(add); //减 BigDecimal subtract = bigDecimal.subtract(bigDecimal1); System.out.println(subtract); //乘 BigDecimal multiply = bigDecimal.multiply(BigDecimal.valueOf(2)); System.out.println(multiply); //除 // BigDecimal divide1 = bigDecimal.divide(BigDecimal.valueOf(3));//结果是一个无限循环的小数,这种方法会报错 BigDecimal divide2 = bigDecimal.divide(BigDecimal.valueOf(3), RoundingMode.UP);//对于无限循环的小数进行四舍五入 // System.out.println(divide1); System.out.println(divide2); //比较 int i3 = bigDecimal.compareTo(BigDecimal.valueOf(1000)); int i4 = bigDecimal.compareTo(BigDecimal.valueOf(1)); int i5 = bigDecimal.compareTo(BigDecimal.valueOf(1000000)); System.out.println(i3); System.out.println(i4); System.out.println(i5);
结果: