数字操作类(BigInteger)类

大整数操作类: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
    }   


}


9003228-ce110f7de17b4536.png
image.png

在Java里面虽然提供了大数字的操作类,我们项目开发可能对数字更加敏感,Java本身所提供的数字类帮助不大,需要第三方工具jar包。

猜你喜欢

转载自blog.csdn.net/weixin_33847182/article/details/87523553