温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Double 双精度如何设置精度

发布时间:2026-10-05 20:19:20 来源:亿速云 阅读:112 作者:小樊 栏目:编程语言

在 Java 中,double 本身是固定 64 位双精度浮点数(IEEE 754),你不能“设置 double 的精度”,只能通过使用方式或替代类型来控制“显示精度”或“计算精度”。常见做法如下:


一、控制“显示精度”(最常用)

只是输出时保留几位小数,不改变数值本身。

1. 使用 DecimalFormat

double d = 3.141592653589793;
DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(d)); // 3.14

2. 使用 String.format

double d = 3.14159;
System.out.println(String.format("%.2f", d)); // 3.14

3. 使用 BigDecimal(推荐用于金额)

double d = 3.14159;
BigDecimal bd = new BigDecimal(d).setScale(2, RoundingMode.HALF_UP);
System.out.println(bd); // 3.14

二、控制“计算精度”(避免浮点误差)

double 有精度损失问题,不适合金额、精确计算。

✅ 使用 BigDecimal(真正高精度)

BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
BigDecimal c = a.add(b); // 0.3

⚠️ 不要用:

new BigDecimal(0.1) // 错误,会带浮点误差

三、四舍五入(控制数值精度)

double d = 3.14159;
double result = Math.round(d * 100.0) / 100.0; // 3.14

四、总结对照

需求 推荐方式
显示几位小数 DecimalFormat / String.format
精确计算 BigDecimal
简单四舍五入 Math.round
设置 double 本身精度 ❌ 不支持

如果你能说下具体场景(如:金额、科学计算、显示、比较),我可以给你更合适的方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手