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)); } }