温馨提示×

温馨提示×

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

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

java Float浮点数如何转整数

发布时间:2026-09-10 00:05:04 来源:亿速云 阅读:106 作者:小樊 栏目:编程语言

在 Java 中,把 float(或 Float)转成整数有多种方式,核心区别在于是否四舍五入、是否截断、是否可能溢出。下面按常见场景说明。


一、直接强制类型转换(截断小数)

float f = 3.9f;
int i = (int) f;   // i = 3
  • ✅ 直接去掉小数部分(向零取整)
  • ❌ 不会四舍五入
  • ⚠️ 超出 int 范围会溢出(结果不可预期)

二、使用 Math.round(最常用,四舍五入)

float f = 3.9f;
int i = Math.round(f); // i = 4
  • ✅ 四舍五入
  • ✅ 返回 int(float 参数)
  • ⚠️ 超出 int 范围会溢出

如果是 double,Math.round 返回 long


三、使用 Float 类方法

Float f = 3.7f;
int i = f.intValue(); // i = 3(截断)
  • 等价于强制转换
  • 用于 Float 对象

四、转成 long(避免溢出)

float f = 1e10f;
long l = Math.round(f);
  • 当数值可能很大时,先用 long
  • int 最大值约 21 亿

五、向下 / 向上取整

float f = 3.2f;
int floor = (int) Math.floor(f); // 3
int ceil  = (int) Math.ceil(f);  // 4

六、注意精度问题(重要)

float f = 0.1f + 0.2f;
System.out.println(f); // 0.30000001
  • float 精度有限
  • 对精度要求高请用 BigDecimal 或 double

七、推荐用法总结

需求 推荐方式
四舍五入 Math.round(f)
直接截断 (int) f
数值可能很大 Math.round(f) → long
高精度计算 BigDecimal

如果你有具体业务场景(如金额、坐标、传感器数据),我可以给你更合适的写法。

向AI问一下细节

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

AI
助
手