double精度丢失如何解决

2025-11-03 03:19:09

1、打开Eclipse,新建一个类,在里面输入如下代码:

double a = 1;

double b = 20.2;

double c = 300.02;

double result = a+b+c;

System.out.println(result);

将3个double类型数字进行相加。

double精度丢失如何解决

2、点击上方的【运行】按钮,开始运行程序。

double精度丢失如何解决

3、结果是【321.219999999999997】,与我们预期的结果:321.22不一样。

double精度丢失如何解决

4、这是因为double类型在进行运算时,会有精度的丢失,这时需要使用BigDecimal来处理,代码更新后如下:

double a = 1;

double b = 20.2;

double c = 300.02;

BigDecimal a1 = new BigDecimal(Double.toString(a));

BigDecimal b1 = new BigDecimal(Double.toString(b));

BigDecimal c1 = new BigDecimal(Double.toString(c));

double result = (a1.add(b1).add(c1)).doubleValue();

System.out.println(result);

double精度丢失如何解决

5、点击上方的【运行】按钮,再次运行程序。

double精度丢失如何解决

6、结果与我们预期的结果一样,是321.22,这样就成功的解决了double的精度丢失问题。

double精度丢失如何解决

1、1.打开Eclipse,新建一个类,在里面输入如下代码:

double a = 1;

double b = 20.2;

double c = 300.02;

double result = a+b+c;

System.out.println(result);

将3个double类型数字进行相加。

2.点击上方的【运行】按钮,开始运行程序。

3.结果是【321.219999999999997】,与我们预期的结果:321.22不一样。

4.这是因为double类型在进行运算时,会有精度的丢失,这时需要使用BigDecimal来处理,代码更新后如下:

double a = 1;

double b = 20.2;

double c = 300.02;

BigDecimal a1 = new BigDecimal(Double.toString(a));

BigDecimal b1 = new BigDecimal(Double.toString(b));

BigDecimal c1 = new BigDecimal(Double.toString(c));

double result = (a1.add(b1).add(c1)).doubleValue();

System.out.println(result);

5.点击上方的【运行】按钮,再次运行程序。

6.结果与我们预期的结果一样,是321.22,这样就成功的解决了double的精度丢失问题。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢