温馨提示×

温馨提示×

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

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

java Double 双精度怎么取整

发布时间:2026-10-26 09:33:55 来源:亿速云 阅读:105 作者:小樊 栏目:编程语言

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


1. 直接强制类型转换(截断取整)

规则:直接丢弃小数部分(向零取整)

double d = 3.9;
long i = (long) d;   // 3
double d = -3.9;
long i = (long) d;   // -3

✅ 适合:只需要整数部分,不关心四舍五入


2. Math.floor()(向下取整)

规则:返回 ≤ 该值的最大整数

Math.floor(3.2);   // 3.0
Math.floor(-3.2);  // -4.0
long i = (long) Math.floor(3.9);

3. Math.ceil()(向上取整)

规则:返回 ≥ 该值的最小整数

Math.ceil(3.2);   // 4.0
Math.ceil(-3.2);  // -3.0

4. Math.round()(四舍五入)

规则:最接近的整数(等价 +0.5 后 floor)

Math.round(3.4);  // 3
Math.round(3.5);  // 4
Math.round(-3.5); // -3

⚠️ 返回值是 long

long i = Math.round(3.9);

5. BigDecimal(精确取整,推荐用于金额)

避免浮点误差

BigDecimal bd = new BigDecimal("3.567");
long i = bd.setScale(0, RoundingMode.HALF_UP).longValue();

支持的舍入模式:

  • HALF_UP(四舍五入)
  • FLOOR
  • CEILING
  • DOWN

6. 字符串 / 格式化(仅显示用)

String s = String.format("%.0f", 3.6); // "4"

总结对照表

方法 3.2 3.8 -3.2 -3.8
(long) 3 3 -3 -3
floor 3 3 -4 -4
ceil 4 4 -3 -3
round 3 4 -3 -4

如果你能说下具体业务场景(比如金额、分页、坐标),我可以给你最合适的写法。

向AI问一下细节

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

AI
助
手