BigDecimal

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

你可能感兴趣的:(java,开发语言)