目录
1. Math.ceil(double a)
2. Math.floor(double a)
3. Math.round(double a) 和 Math.round(float a)
区别总结
注意点
在 Java 中,Math.ceil()
、Math.floor()
和 Math.round()
是用于处理浮点数的小数点的三个常用方法。它们各自的功能和返回值有所不同,具体说明如下:
1. Math.ceil(double a)
功能: 向上取整(返回大于或等于参数的最小整数值,以 double
类型返回)。
- 逻辑: 将小数部分向上舍入,即使小数部分非常小(如 0.0001),也会向上取整。
- 返回值类型:
double
示例:
System.out.println(Math.ceil(3.2)); // 输出: 4.0
System.out.println(Math.ceil(-3.2)); // 输出: -3.0
System.out.println(Math.ceil(3.0)); // 输出: 3.0
2. Math.floor(double a)
功能: 向下取整(返回小于或等于参数的最大整数值,以 double
类型返回)。
- 逻辑: 将小数部分向下舍入,即使小数部分非常小(如 0.9999),也会向下取整。
- 返回值类型:
double
示例:
System.out.println(Math.floor(3.8)); // 输出: 3.0
System.out.println(Math.floor(-3.8)); // 输出: -4.0
System.out.println(Math.floor(3.0)); // 输出: 3.0
3. Math.round(double a)
和 Math.round(float a)
功能: 四舍五入(返回最接近的整数值,具体根据参数是 double
还是 float
返回 long
或 int
)。
- 逻辑: 如果小数部分 ≥ 0.5,则向上舍入;否则向下舍入。
- 返回值类型:
- 如果是
double
参数,返回long
。 - 如果是
float
参数,返回int
。
示例:
System.out.println(Math.round(3.5)); // 输出: 4
System.out.println(Math.round(3.4)); // 输出: 3
System.out.println(Math.round(-3.5)); // 输出: -3
System.out.println(Math.round(-3.6)); // 输出: -4
区别总结
方法 | 功能描述 | 返回值类型 | 示例输入 | 示例输出 |
| 向上取整 |
|
|
|
| 向下取整 |
|
|
|
| 四舍五入 |
|
|
|
注意点
- 正负数处理:
Math.ceil()
和Math.floor()
在处理负数时会根据方向进行取整:
- 向上取整指趋近正无穷大。
- 向下取整指趋近负无穷大。
-
Math.round()
的处理不区分正负数,遵循四舍五入原则。
- 返回值类型:
-
Math.ceil()
和Math.floor()
返回double
,可以包含小数点。 -
Math.round()
返回整数,类型依赖于输入参数。
这三种方法可以根据实际需求灵活使用,比如取整价格、计算分页数量等场景。