• Java从零开始学二十九(大数操作(BigIntger、BigDecimal)


    一、BigInteger

    如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作。
    不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。
    No.
    方法
    类型
    描述
    1
    public BigInteger(String val)
    构造
    将一个字符串变为BigInteger类型的数据
    2
    public BigInteger add(BigInteger val)
    普通
    加法
    3
    public BigInteger subtract(BigInteger val)
    普通
    减法
    4
    public BigInteger multiply(BigInteger val)
    普通
    乘法
    5
    public BigInteger divide(BigInteger val)
    普通
    除法
    6
    public BigInteger max(BigInteger val)
    普通
    返回两个大数字中的最大值
    7
    public BigInteger min(BigInteger val)
    普通
    返回两个大数字中的最小值
    8
    public BigInteger[] divideAndRemainder(BigInteger val)
    普通
    除法操作,数组的第一个元素为除法的商,第二个元素为除法的余数

    二、使用BigInteger操作大整数

    package com.pb.demo1;
    
    import java.math.BigInteger;
    
    public class BigIntegerDemo {
    
        public static void main(String[] args) {
            BigInteger bi1=new BigInteger("123456789");
            BigInteger bi2=new BigInteger("987654321");
            System.out.println("加法操作:" + bi2.add(bi1));    // 加法操作
            System.out.println("减法操作:" + bi2.subtract(bi1));    // 减法操作
            System.out.println("乘法操作:" + bi2.multiply(bi1));    // 乘法操作
            System.out.println("除法操作:" + bi2.divide(bi1));    // 除法操作
            System.out.println("最大数:" + bi2.max(bi1));    // 求出最大数
            System.out.println("最小数:" + bi2.min(bi1));    // 求出最小数
            BigInteger result[] = bi2.divideAndRemainder(bi1) ;    // 除法操作
            System.out.println("商是:" + result[0] + 
                    ";余数是:" + result[1]); 
    
        }
    
    }

    结果:

    加法操作:1111111110
    减法操作:864197532
    乘法操作:121932631112635269
    除法操作:8
    最大数:987654321
    最小数:123456789
    商是:8;余数是:9

    三、使用BigDecimal指定小数的保留位数

    对于不需要任何准确计算精度的程序可以直接使用float或double完成,但是如果需要精确计算的结果,则必须使用BigDecimal类。
    No.
    方法
    类型
    描述
    1
    public BigDecimal(double val)
    构造
    将double表示形式转换为BigDecimal
    2
    public BigDecimal(int val)
    构造
    将int表示形式转换为BigDecimal
    3
    public BigDecimal(String val)
    构造
    将字符串表示形式转换为BigDecimal
    4
    public BigDecimal add(BigDecimal augend)
    普通
    加法
    5
    public BigDecimal subtract(BigDecimal subtrahend)
    普通
    减法
    6
    public BigDecimal multiply(BigDecimal multiplicand)
    普通
    乘法
    7
    public BigDecimal divide(BigDecimal divisor)
    普通
    除法
     
     
  • 相关阅读:
    项目总结_写代码
    项目总结_el表达式
    项目总结plc_过滤器规则(filter)_忽略过滤的js和css文件
    tomcat 启动错误
    每天学点java_Eclipse修改author名
    每天学点java_FileOutputSteam类
    每天学点java_File类
    11.28日日记
    《深入理解计算机系统》学习中期
    开始《深入理解计算机系统》
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4301932.html
Copyright © 2020-2023  润新知