温馨提示×

温馨提示×

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

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

java Double 双精度如何做四舍五入

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

在 Java 中,对 Double(双精度浮点数)进行四舍五入有多种常见方式,下面按使用频率和可控制精度给你总结一下。


✅ 1. 使用 Math.round(最常用,整数级四舍五入)

double d = 3.14159;
long result = Math.round(d); // 3

⚠️ 注意:

  • Math.round(double) 返回 long
  • 只能四舍五入到整数

四舍五入到指定小数位

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

✅ 2. 使用 BigDecimal(推荐,最精确)

这是最安全、最可控的方式,尤其用于金额计算。

import java.math.BigDecimal;
import java.math.RoundingMode;

double d = 3.14159;
BigDecimal bd = new BigDecimal(d);
bd = bd.setScale(2, RoundingMode.HALF_UP);

double result = bd.doubleValue(); // 3.14

✅ 优点:

  • 可指定小数位
  • 可指定舍入模式
  • 避免浮点误差

⚠️ 建议:用 String 构造 BigDecimal 更安全

BigDecimal bd = new BigDecimal("3.14159");

✅ 3. 使用 DecimalFormat(格式化输出用)

适合展示,不适合计算。

import java.text.DecimalFormat;

double d = 3.14159;
DecimalFormat df = new DecimalFormat("#.##");
String result = df.format(d); // "3.14"

⚠️ 返回的是 String


✅ 4. 使用 String.format

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

✅ 四舍五入模式说明(RoundingMode)

模式 说明
HALF_UP 四舍五入(常用)
HALF_DOWN 五舍六入
HALF_EVEN 银行家舍入
UP / DOWN 向上 / 向下

✅ 推荐总结

场景 推荐方式
保留小数计算 BigDecimal
简单整数 Math.round
页面展示 DecimalFormat
金额 ✅ BigDecimal

如果你有具体业务场景(比如金额、百分比、科学计算),我可以给你更合适的写法。

向AI问一下细节

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

AI
助
手