在 Java 中,把 float(或 Float)转成整数有多种方式,区别在于是否四舍五入、是否截断、是否可能溢出。下面按常见场景说明。
float f = 3.9f;
int i = (int) f; // i = 3
✅ 特点:
Math.roundfloat f = 3.6f;
int i = Math.round(f); // i = 4
✅ 特点:
int(float)或 long(double)float f = 3.9f;
int i = (int) Math.floor(f); // i = 3
float f = 3.1f;
int i = (int) Math.ceil(f); // i = 4
Float f = 3.14f;
int i = Math.round(f);
或:
int i = f.intValue(); // 截断
float f = 1e10f;
int i = (int) f; // 结果不可预期
✅ 安全做法:
if (f >= Integer.MIN_VALUE && f <= Integer.MAX_VALUE) {
int i = Math.round(f);
}
float f = Float.NaN;
int i = (int) f; // 0
| 需求 | 写法 |
|---|---|
| 截断 | (int) f |
| 四舍五入 | Math.round(f) |
| 向下 | (int) Math.floor(f) |
| 向上 | (int) Math.ceil(f) |
如果你有具体业务场景(比如金额、坐标、百分比),我可以给你更合适的建议。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。