声明:本站文章均为作者个人原创,图片均为实际截图。如有需要请收藏网站,禁止转载,谢谢配合!!!

直接相加的情况下,会出现精度丢失的问题,因此可以使用 BigDecimal ,如果是 double 的类型,依然会存在问题,所以推荐 3 4 5 写法

//1.直接相加
System.out.println(0.05 + 0.1);

//2.初始
BigDecimal a = new BigDecimal(0.05);
BigDecimal b = new BigDecimal(0.1);
System.out.println(a.add(b));

//3.字符串 【推荐】
BigDecimal c = new BigDecimal("0.05");
BigDecimal d = new BigDecimal("0.1");
System.out.println(c.add(d));

//4.使用valueOf 【推荐】 查看源码可知,valueOf 调用的是 Double.toString()
BigDecimal e = BigDecimal.valueOf(0.05);
BigDecimal f = BigDecimal.valueOf(0.1);
System.out.println(e.add(f));

//5.使用double.toString 【推荐】
BigDecimal g = new BigDecimal(Double.toString(0.05));
BigDecimal h = new BigDecimal(Double.toString(0.1));
System.out.println(g.add(h));

运行结果如图

下载附件

valueOf 调用的是 Double.toString()

下载附件