Java API之BigDeaimal[详解]

BigDeaimal类(大浮点)

一.为什么要有BigDeaimal?

首先上来先整个活,来举一个 栗子

public class Test3{
​
    public static void main(String[] args) {
​
            System.out.println(0.2 + 0.1);
            System.out.println(0.7 - 0.5);
            System.out.println(0.1 * 0.3);
            System.out.println(0.3 / 0.1);
​
    }
}
​
这段代码的输出结果为:
    0.30000000000000004
    0.19999999999999996
    0.03
    2.9999999999999996

为什么会出现这种情况?

    因为无论是fioat还是double都是浮点数,而计算机是二进制的,浮点数在运算时就会丢失精度

注:

出现这个问题的根本原因是:

    十进制数通常没有完全相同的二进制表示形式;十进制的二进制数的表示形式可能不精确,只能无限接近整数

二.BigDeaimal类概述

  • 位于java.math包中

  • 用来对超过16位有效的数字进行精确的运算

  • 使用BigDeaimal创建对象后不能直接使用"+ ,- ,* ,/"等运算,要调用相应的方法来进行运算

三.构造器

①BigDeaimal(int)

//创建一个具有参数指定整数值的对象

②BigDeaimal(double)

//创建一个具有参数所指定双精度值的对象

③BigDeaimal(long)

//创建一个具有参数指定长整数值的对象

④BigDeaimal(String)

//创建一个具有参数指定以字符串表示数值的对象,推荐使用

四.常用方法

①add(BigDeaimal)

//在BigDeaimal对象中添加相应值,并返回这个对象

②subtract(BigDeaimal)

//在BigDeaimal对象中减去相应值,并返回这个对象

③multiply(BigDeaimal)

//将BigDeaimal对象中的值相乘,并返回这个对象

④divide(BigDeaimal)

//将BigDeaimal对象中的值相除,并返回这个对象

⑤toString()

//将BigDeaimal对象转换成字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会写代码的菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值