BigDecimal类的概念和使用

BigDecimal类的概念

(1)基本概念

  由于float类型和double类型在运算时可能会有误差,若希望实现精确运算则借助

java.math.BigDecimal类型加以描述。

(2)常用的方法

 总结:在商业开发中不允许有误差,所以我们要使用BigDecimal类实现精确运算,在java/math/BigDecimal

注意:在执行除非运算的时候不能精确运算会报错,使用roundingmode.htle_up方法执行四舍五入可以报错

在手册中大量的过时方法,需要慢慢查找

 

package com.lagou.task11;

import com.lagou.task10.StaticOuter;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalTest {
    public static void main(String[] args) {
        //  1.构造BigDecimal类型的两个对象
        BigDecimal bd1 = new BigDecimal("5.2");
        BigDecimal bd2 = new BigDecimal("1.3");
        //  2.使用构造完毕的对象实现加减乘除运算
        System.out.println("实现加法运算"+bd1.add(bd2));  // 6.5
        System.out.println("实现减法运算"+bd1.subtract(bd2)); //  3.9
        System.out.println("实现乘法运算"+bd1.multiply(bd2)); //  6.76
        System.out.println("实现除法运算"+bd1.divide(bd2));   //  4

        System.out.println("-------------------------------------------------");
        //  3.实现精确运算
        System.out.println(0.1+0.2);
        BigDecimal bd3 = new BigDecimal("0.1");
        BigDecimal bd4 = new BigDecimal("0.2");
        System.out.println("实现精确运算的结果是:" + bd3.add(bd4));

        System.out.println("----------------------------------------------------");
        //  4.注意事项
        BigDecimal bd5 = new BigDecimal("2");
        BigDecimal bd6 = new BigDecimal("0.3");
        //  System.out.println("除法运算的结果是:" + bd5.divide(bd6));  ArithmeticException 除不尽发生的算数异常
        System.out.println("除法运算的结果是:" + bd5.divide(bd6,RoundingMode.HALF_UP));

    }
}
原文地址:https://www.cnblogs.com/xujiaqi/p/13818133.html