BigDecimal

2023-12-29 18:45:30

BigDecimal?

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

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

构造器说明
public static BigDecimal valueOf(double val)转换一个double成BigDecimal
public static BigDecimal (String val)把String转成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);
    }
}

文章来源:https://blog.csdn.net/SU_mu147/article/details/135295732
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。