大整数操作类:BigInteger
如果说现在要操作的数据值很大,那么首先想到的是double,那么如果说现在计算的结果超过了double呢?
面试题:请问当前假设两个很大的数字进行数学计算(超过了double范围)。你该怎么做?
如果真的超过了double的范围,那么肯定无法使用double保存,只有String才可以准确的保存这个数据,如果真的很大的数字要进行数学计算,而后按位取出每一个字符保存的数据,进行手工计算
10
..9
所以在Java里面考虑到了此类情况,提供大数字的操作类,其中BigInteger为大整型,BigDecinmal为大浮点型。这两个数据类型都是Number的子类。
BigInteger类的构造方法:public BigInteger(String val)
package TestDemo;
import java.math.BigInteger;
import java.util.Random;
public class TestDemo{
public static void main(String[] args) throws Exception{
BigInteger bigA=new BigInteger("123123123123");
BigInteger bigB=new BigInteger("292830913812");
System.out.println("plus"+(bigA.add(bigB)));
System.out.println("cheng"+(bigA.multiply(bigB)));
System.out.println("chu"+(bigA.divide(bigB)));
//数组里面只有两个元素,第一个元素为商,第二个元素为余数
//divideAndRemainder
}
}
image.png
在Java里面虽然提供了大数字的操作类,我们项目开发可能对数字更加敏感,Java本身所提供的数字类帮助不大,需要第三方工具jar包。
网友评论