在 Java 中,float(以及 Float)是浮点数,常见的“取整”需求一般有以下几种,按使用场景说:
直接强制类型转换,不会四舍五入,直接丢掉小数。
float f = 3.99f;
int i = (int) f; // i = 3
⚠️ 注意:超出 int 范围会溢出。
Math.round(最常用)float f = 3.6f;
int i = Math.round(f); // i = 4
返回的是 int(float → int)或 long(double → long)。
float f = 3.1f;
double d = Math.ceil(f); // 4.0
int i = (int) Math.ceil(f);
float f = 3.9f;
double d = Math.floor(f); // 3.0
int i = (int) Math.floor(f);
float f = 3.14159f;
float result = Math.round(f * 100) / 100.0f; // 3.14
或用 BigDecimal(更精确、推荐):
import java.math.BigDecimal;
import java.math.RoundingMode;
float f = 3.14159f;
float result = new BigDecimal(f)
.setScale(2, RoundingMode.HALF_UP)
.floatValue();
| 需求 | 方法 |
|---|---|
| 截断 | (int) f |
| 四舍五入 | Math.round(f) |
| 向上 | Math.ceil(f) |
| 向下 | Math.floor(f) |
| 高精度 | BigDecimal |
如果你是特定业务场景(比如金额、分页、坐标),可以告诉我,我给你更合适的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。