Biginteger类与BigDecimal类

文章介绍了Java中用于处理大整数和高精度浮点数的BigInteger和BigDecimal类。BigInteger类用于表示超出long类型范围的大整数,提供加减乘除等操作;BigDecimal类则用于精确计算小数,避免浮点数运算时的精度问题,常用于财务计算。文章通过示例展示了这两个类的基本使用方法。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

 Biglnteger 类和 BigDecimal 类可以用于表示任意大小和精度的整教或者十进制数。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Biginteger类与BigDecimal类

1.Biginteger类

当程序需要处理一个非常大的整数时,如果这个数值超出了 long 类型的取值范围,则无法使用基本类型的对象接收。早期程序开发者使用 String 类进行大整数的接收,再采用拆分的方式进行计算,操作过程非常麻烦。为了解决这个问题,Java 提供了 BigInteger 类BigInteger类表示大整数,定义在 java,math 包中,如果在开发时需要定义一个超出 long类型的取值范围的整型数据,可以使用 BigInteger 类的对象接收该数据。

2.BigDecimal类

在进行浮点数运算的时候,float 类型和 double 类型很容易丢失精度,为了能够精确地表示和计算浮点数,Java 提供了 BigDecimal类。BigDecimal类可以表示任意精度的小数多用于数字精度要求高的场景,例如商业计算、货币值计算等。

二、使用步骤

1.Biginteger类示例

import java.math.BigInteger;
class Biginteger {
    public static void main(String[] args) {
        BigInteger bi1=new BigInteger("123456789");//创建BigInteger对象
        BigInteger bi2=new BigInteger("987654321");//创建BigInteger对象
        System.out.println("bi2与bi1的和"+bi2.add(bi1));
        System.out.println("bi2与bi1的差"+bi2.subtract(bi1));
        System.out.println("bi2与bi1的积"+bi2.multiply(bi1));
        System.out.println("bi2与bi1的商"+bi2.divide(bi1));
        System.out.println("bi2与bi1的较大值"+bi2.max(bi1));
        System.out.println("bi2与bi1的较小值"+bi2.min(bi1));
        BigInteger  result[] =bi2.divideAndRemainder(bi1);//创建result数组接受商和余数
        System.out.println("bi2除以bi1的商:"+result[0]+":bi2除以bi1的余数:"+result[1]);
    }
}

输出结果

1.BigDecimal类示例

 

import java.math.BigDecimal;
class Example {
    public static void main(String[] args) {
        BigDecimal bi1=new BigDecimal("0.001");//创建BigDecimal对象
        BigDecimal bi2=BigDecimal.valueOf(0.009);//创建BigDecimal对象
        System.out.println("bi2与bi1的和"+bi2.add(bi1));
        System.out.println("bi2与bi1的差"+bi2.subtract(bi1));
        System.out.println("bi2与bi1的积"+bi2.multiply(bi1));
        System.out.println("bi2与bi1的商"+bi2.divide(bi1));
        System.out.println("bi2与bi1的较大值"+bi2.max(bi1));
        System.out.println("bi2与bi1的较小值"+bi2.min(bi1));
    }
}

输出结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值