java学习笔记-BigDecimal类
构造方法
BigDecimal(double val)
BigDecimal(String val)
package com.ustc.test1;
import java.math.BigDecimal;
public class MyBigDecimal {
public static void main(String[] args) {
//不精确运算
// BigDecimal a = new BigDecimal(0.1);
// BigDecimal b = new BigDecimal(0.2);
// BigDecimal c = a.add(b);
// System.out.println(c);
//如果想要精确运算 请使用字符串的构造方法
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
BigDecimal c = a.add(b);
System.out.println(c);
BigDecimal d = a.subtract(b);
System.out.println(d);
BigDecimal e = a.multiply(b);
System.out.println(e);
BigDecimal f = a.divide(b);
System.out.println(f);
}
}
除法相关说明,因为BigDecimal是精确计算 所以除法会有除不尽情况
除法 divide 三个参数 参与运算的另一个对象 + 小数点之后精确到多少位 + 舍入模式(进一法 去尾法 四舍五入)
BigDecimal f = a.divide(b,2,BigDecimal.ROUND_UP);
BigDecimal f = a.divide(b,2,BigDecimal.ROUND_FLOOR);
BigDecimal f = a.divide(b,2,BigDecimal.ROUND_HALF_UP);
总结:BigDecimal 是用来进行精确计算的
创建 BigDecimal的对象 构造方法使用参数类型为字符串的
四则运算中的除法 如果除不尽请使用divide的三个参数的方法。 否则报错!