BigDecimal

本文介绍了BigDecimal类在Java中如何解决浮点型运算结果失真问题,包括其构造器、常用方法(如加减乘除及控制精度)的示例应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BigDecimal 

  • 用于解决浮点型运算时,出现结果失真的问题。

BigDecimal的常见构造器、常用方法

构造器说明
public BigDecimal(double cal)        注意:不推荐使用这个将double转换为BigDecimal
public BigDecimal(String val)把String转成BigDeciaml
方法名说明
public static BigDecimal valueOf(double val)转换一个double成BigDecimal
public static BigDecimal add(BigDecimal b)加法
public static BigDecimal subtract(BigDecimal b)减法
public static BigDecimal multiply(BigDecimal b)乘法
public static BigDecimal divide(BigDecimal b)除法
public static BigDecimal divide(另一个BigDecimal对象,精确几位,舍入模式)除法,可以控制精确到小数几位
public double doubleValue()将BigDecimal转成double
import java.math.BigDecimal;
import java.math.RoundingMode;

public class Test {
    public static void main(String[] args){
        // 目标:掌握BigDecimal的使用,解决小数运算失真的问题
        double a = 0.1;
        double b = 0.3;

        // 将小数转换成一个字符串再得到BigDecimal对象来使用
        BigDecimal a1 = BigDecimal.valueOf(a);
        BigDecimal b1 = BigDecimal.valueOf(b);

        BigDecimal c1 = a1.add(b1);         //加法
        BigDecimal c2 = a1.subtract(b1);    //减法
        BigDecimal c3 = a1.multiply(b1);    //乘法
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);

        BigDecimal c4 = a1.divide(b1,2, RoundingMode.HALF_UP);      //除法

        // 将BigDecimal转成double
        double rs = c4.doubleValue();
        System.out.println(rs);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值