BigIntger
是什么:
对于超出了所有基本数据类型范围的数字,字符串,在这种情况下,也就是要求我们对于数据实现高精度,从而保证数据能够正常的进行一个相应的输出
这时候就需要使用到 BigIntger来扩大对于整数数据的精准度,无论多大,都能够保证在范围当中
(BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。)
怎么用:
静态方法:
BigIntger x=new BigInter("10000000000");
System.out.println(x);
//最后直接输出的是x的大数值: 10000000000
tips:在静态的方法当中,必须要对于需要的数据添加一个双引号,因为其数值过大,可以先简单的将其理解为字符串之间的运算
// 加法 BigInteger sum = a.add(b); System.out.println(sum); // 输出:11111111100 // 减法 BigInteger difference = a.subtract(b); System.out.println(difference); // 输出:-8641975320 // 乘法 BigInteger product = a.multiply(b); System.out.println(product); // 输出:12193263111263526900 // 除法 BigInteger quotient = a.divide(b); System.out.println(quotient); // 输出:0 // 求余 BigInteger remainder = a.remainder(b); System.out.println(remainder); // 输出:1234567890 // 比较大小 int compareResult = a.compareTo(b); System.out.println(compareResult); // 输出:-1(a < b)
题型练习
//练习:使用高精度计算各个阶乘之和
Scanner in=new Scanner(System.in); //使用大数据的方法,实现阶乘的运算 int cent=in.nextInt(); //开始进行数值的相加,从而实现题目的要求 int temp=1; //设定最开始的SUM和是一个0 BigInteger add=new BigInteger("0"); BigInteger a=new BigInteger("1"); for (int i1 = 0; i1 < cent; i1++) { for (int i = 1; i <= temp; i++) { //通过使用强制转化,将其中的基本数据类型转化成为一个大数据类型 BigInteger I = BigInteger.valueOf(i); a = a.multiply(I); } //添加 add=add.add(a); temp++; //在这里添加一个需要再进行转换一个大数值类型 int y=1; //这两步是为了将其中的a数值进行还原,重新变成原本的"1" BigInteger bigInteger = BigInteger.valueOf(y); a=a.subtract(a).add(bigInteger); } System.out.println(add); }