网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 生活知识 知识问答

double精度丢失如何解决

时间:2026-02-16 03:00:37

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的精度丢失问题。

© 2026 一点知道
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com