在 Java 中,把 float(或 Float)转成整数有多种方式,核心区别在于是否四舍五入、是否截断、是否可能溢出。下面按常见场景说明。
float f = 3.9f;
int i = (int) f; // i = 3
int 范围会溢出(结果不可预期)float f = 3.9f;
int i = Math.round(f); // i = 4
int(float 参数)int 范围会溢出如果是
double,Math.round返回long
Float f = 3.7f;
int i = f.intValue(); // i = 3(截断)
Float 对象float f = 1e10f;
long l = Math.round(f);
longint 最大值约 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 |
如果你有具体业务场景(如金额、坐标、传感器数据),我可以给你更合适的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。