Java BigDecimal类的一般使用、BigDecimal转double方式

BigDecimal类的一般使用、BigDecimal转double

BigDecimal大据类

浮点型运算的时候直接 加减乘除时可能会出现数据失真(精度问题)。

BigDecimal可以解决浮点型运算数据失真的问题。

        double a = 0.1;
        double b = 0.2;
        double c = a+b;
        System.out.println(c);//0.30000000000000004

BigDecimal类

包: java.math.

创建一个BigDecimal对象

public static BigDecimal valueOf(double val)

方法声明

  • public BigDecimal add (BigDecinal value) 加法运算
  • public BigDecimal subtract (BigDecimal value)减法运算
  • public BigDecimal multiply(BigDecimal value)乘法运算
  • public BigDecimal divide (BigDecimal value)除法运算
        BigDecimal biga = BigDecimal.valueOf(a);
        BigDecimal bigb = BigDecimal.valueOf(b);
        BigDecimal bigc = biga.add(bigb);
        System.out.println(bigc);//0.3

BigDecimal转double

public double doubleValue()

然而BigDecimal只是解决精度问题的手段,获取double数据才是我们的目的

double rs = bigc.doubleValue();

BigDecimal , double 转换方式

BigDecimal offsetAmount = (BigDecimal) cj.get(i).get("xxxx");
double offsetAmount = offsetAmount.doubleValue();

BigDecimal直接返回给前台还不行,得转成double不清楚为什么。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(Java BigDecimal类的一般使用、BigDecimal转double方式)