c语言编程笔录

首页 >   > 笔记大全

笔记大全

Java的大数型BigInteger与BigDecimal类怎么使用

更新时间:2023-11-09

前言:

在Java中,有时候需要处理超过基本数据类型所能表示的大数,例如大整数和大浮点数。Java提供了两个用于处理大数的类:BigInteger和BigDecimal。

使用BigInteger:

BigInteger类提供了对任意精度整数的运算和操作。我们可以使用BigInteger类进行大整数的加减乘除、取余、取模等运算。

import java.math.BigInteger;

public class BigIntegerDemo {
    public static void main(String[] args) {
        // 使用字符串创建BigInteger对象
        BigInteger num1 = new BigInteger("12345678901234567890");
        BigInteger num2 = new BigInteger("98765432109876543210");
        
        // 加法
        BigInteger sum = num1.add(num2);
        System.out.println("和:" + sum);
        
        // 减法
        BigInteger diff = num2.subtract(num1);
        System.out.println("差:" + diff);
        
        // 乘法
        BigInteger product = num1.multiply(num2);
        System.out.println("积:" + product);
        
        // 除法
        BigInteger quotient = num2.divide(num1);
        System.out.println("商:" + quotient);
        
        // 取余
        BigInteger remainder = num2.remainder(num1);
        System.out.println("余数:" + remainder);
    }
}

使用BigDecimal:

BigDecimal类用于进行任意精度的浮点数运算和操作。我们可以使用BigDecimal类进行大浮点数的加减乘除、取余、取模等运算。

import java.math.BigDecimal;

public class BigDecimalDemo {
    public static void main(String[] args) {
        // 使用字符串创建BigDecimal对象
        BigDecimal num1 = new BigDecimal("12345678901234567890");
        BigDecimal num2 = new BigDecimal("98765432109876543210");
        
        // 加法
        BigDecimal sum = num1.add(num2);
        System.out.println("和:" + sum);
        
        // 减法
        BigDecimal diff = num2.subtract(num1);
        System.out.println("差:" + diff);
        
        // 乘法
        BigDecimal product = num1.multiply(num2);
        System.out.println("积:" + product);
        
        // 除法
        BigDecimal quotient = num2.divide(num1, 10, BigDecimal.ROUND_HALF_UP);
        System.out.println("商:" + quotient);
        
        // 取余
        BigDecimal remainder = num2.remainder(num1);
        System.out.println("余数:" + remainder);
    }
}

总结:

BigInteger类和BigDecimal类提供了对大数的精确处理能力。我们可以使用这两个类进行任意精度的整数和浮点数运算,以及其他相关操作。使用BigInteger和BigDecimal时,要注意传入参数的格式,可以使用字符串来创建这两个类的对象。在进行除法运算时,还要注意设置除法精度和舍入模式。