温馨提示×

温馨提示×

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

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

java Double双精度怎样转int

发布时间:2026-09-15 04:19:12 来源:亿速云 阅读:87 作者:小樊 栏目:编程语言

在 Java 中,把 double(双精度)转 int 常见有以下几种方式,但要注意精度丢失和溢出问题


1️⃣ 强制类型转换(最常用,直接截断小数)

double d = 9.99;
int i = (int) d;
System.out.println(i); // 输出 9

✅ 特点:

  • 直接丢弃小数部分
  • 不会四舍五入
  • 可能溢出(double 范围远大于 int)

2️⃣ 使用 Math.round(四舍五入)

double d = 9.99;
int i = (int) Math.round(d);
System.out.println(i); // 输出 10

✅ 特点:

  • 四舍五入
  • 返回 long,需再转 int
  • 仍有溢出风险

3️⃣ 使用 Math.floor / Math.ceil

double d = 9.1;
int floor = (int) Math.floor(d); // 9
int ceil  = (int) Math.ceil(d);  // 10
  • floor:向下取整
  • ceil:向上取整

4️⃣ 转 String 再解析(不推荐,性能差)

double d = 9.5;
int i = Integer.parseInt(String.valueOf((int) d));

⚠️ 注意事项

溢出问题

double d = 1e20;
int i = (int) d; // 结果不可预期(溢出)

NaN / Infinity

double d = Double.NaN;
int i = (int) d; // 0

✅ 推荐写法(安全示例)

if (d >= Integer.MIN_VALUE && d <= Integer.MAX_VALUE) {
    int i = (int) Math.round(d);
}

如果你是 金融计算 / 金额处理,建议用 BigDecimal,我可以给你示例。

向AI问一下细节

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

AI