温馨提示×

温馨提示×

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

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

java Double 双精度如何取整

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

在 Java 中,对 Double(双精度浮点数)进行“取整”有多种方式,具体取决于你想要的取整规则。下面按常见场景说明:


一、四舍五入(最常用)

1️⃣ Math.round(返回 long 或 int)

Double d = 3.6;
long l = Math.round(d);   // 4
int i = (int) Math.round(d); // 4

⚠️ 注意:返回的是 long,精度安全。


二、直接截断(向下/向零取整)

2️⃣ 强制类型转换(向零取整)

Double d = 3.9;
int i = d.intValue(); // 3
// 或
int i2 = (int)(double)d; // 3

⚠️ 负数也会向零:(-3.9 → -3)


三、向下取整(总是更小)

3️⃣ Math.floor

Double d = 3.2;
double r = Math.floor(d); // 3.0

Double d2 = -3.2;
double r2 = Math.floor(d2); // -4.0

四、向上取整(总是更大)

4️⃣ Math.ceil

Double d = 3.1;
double r = Math.ceil(d); // 4.0

五、保留小数位后取整(如保留 2 位)

5️⃣ BigDecimal(推荐,精度高)

Double d = 3.14159;
double r = BigDecimal.valueOf(d)
        .setScale(2, RoundingMode.HALF_UP)
        .doubleValue(); // 3.14

六、返回 Double 而非 int/long

如果你不想改变类型,只是取整值:

Double d = 3.7;
Double result = Math.floor(d); // 3.0

总结对照表

需求 方法
四舍五入 Math.round
向零取整 (int) d
向下取整 Math.floor
向上取整 Math.ceil
高精度 BigDecimal

如果你有具体业务场景(如金额、分页、算法),我可以给你更合适的建议。

向AI问一下细节

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

AI
助
手