java如何取整
Java 取整方法
Java 提供了多种取整方式,适用于不同的需求场景。以下是常用的几种方法:
使用 Math 类的方法
-
Math.floor(double a)
向下取整,返回小于或等于参数的最大 double 值。
示例:
double result = Math.floor(3.7); // 结果为 3.0 -
Math.ceil(double a)
向上取整,返回大于或等于参数的最小 double 值。
示例:
double result = Math.ceil(3.2); // 结果为 4.0 -
Math.round(double a)
四舍五入,返回最接近参数的 long 值。
示例:long result = Math.round(3.5); // 结果为 4 -
Math.round(float a)
四舍五入,返回最接近参数的 int 值。
示例:int result = Math.round(3.5f); // 结果为 4
强制类型转换
- 直接截断小数部分
将浮点数强制转换为整数类型会直接丢弃小数部分。
示例:int result = (int) 3.7; // 结果为 3
使用 BigDecimal 类
setScale(int newScale, RoundingMode roundingMode)
提供更精确的取整控制,适用于金融等需要高精度的场景。
示例:BigDecimal num = new BigDecimal("3.75"); BigDecimal rounded = num.setScale(1, RoundingMode.HALF_UP); // 结果为 3.8
使用 DecimalFormat 类
- 格式化数字时取整
通过模式字符串控制取整方式。
示例:DecimalFormat df = new DecimalFormat("#"); String result = df.format(3.7); // 结果为 "4"
选择方法的建议
- 需要简单四舍五入时使用
Math.round()。 - 需要精确控制取整方式时使用
BigDecimal。 - 直接截断小数部分时使用强制类型转换。
- 格式化输出时使用
DecimalFormat。
每种方法适用于不同的场景,根据具体需求选择最合适的方式。






