在 Java 中,double 是 64 位 IEEE 754 双精度浮点数,其精度和范围如下:
Double.MAX_VALUE ≈ 1.7976931348623157E308Double.MIN_VALUE ≈ 4.9E-324Double.POSITIVE_INFINITYDouble.NEGATIVE_INFINITYDouble.NaNdouble a = 0.1;
double b = 0.2;
System.out.println(a + b); // 0.30000000000000004
这说明 double 不能精确表示所有十进制小数。
BigDecimal(金融、精确计算)BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
System.out.println(a.add(b)); // 0.3
| 类型 | 位数 | 精度 | 范围 |
|---|---|---|---|
| double | 64 | 15–17 位十进制 | ±1.8×10^308 |
如果你关心的是金额、精度要求、或浮点误差问题,可以继续问我。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。