Java 中的 Math.round(-1.5) 等于多少?
答案:
Math.round(-1.5)
的结果是 -1。
详细讲解
Math.round()
是 Java 中用于对浮点数进行四舍五入的方法,其具体实现如下:
- 对于
float
类型:
-
“`
Math.round(float a)
“`的实现是:
“`java
return (int) Math.floor(a + 0.5f);
“`
- 对于
double
类型:
-
“`
Math.round(double a)
“`的实现是:
“`java
return (long) Math.floor(a + 0.5d);
“`
四舍五入的规则:
- 将数值加上
0.5
,然后向下取整(Math.floor()
)。 - 对于正数,这是通常的四舍五入规则。
- 对于负数,效果是 “远离 0 的方向取整”。
计算过程
我们以 Math.round(-1.5)
为例,进行详细计算:
- 输入
-1.5
,类型为double
。 -
按照公式:
Math.floor(-1.5 + 0.5)
。
-1.5 + 0.5 = -1.0
。Math.floor(-1.0)
取的是不大于-1.0
的最大整数,结果是-1
。
- 将结果转为
long
(对于double
),最终结果是-1
。
更多例子
输入 | 计算过程 | 结果 |
---|---|---|
Math.round(1.5) |
Math.floor(1.5 + 0.5) |
2 |
Math.round(-1.5) |
Math.floor(-1.5 + 0.5) |
-1 |
Math.round(2.3) |
Math.floor(2.3 + 0.5) |
2 |
Math.round(-2.7) |
Math.floor(-2.7 + 0.5) |
-3 |
Math.round(0.5) |
Math.floor(0.5 + 0.5) |
1 |
Math.round(-0.5) |
Math.floor(-0.5 + 0.5) |
0 |
注意点
- 负数的四舍五入规则:
- 对于负数,“四舍五入”是基于加上 0.5 后的结果取整。
- 比如
-1.5
加上0.5
变为-1.0
,再向下取整,结果是-1
。
Math.round()
返回值的类型:- 输入
float
,返回值为int
。 - 输入
double
,返回值为long
。
- 输入
- 四舍五入 vs 舍入到零:
Math.round()
遵循的是四舍五入的规则。- 如果需要其他舍入规则(如舍入到零、向上舍入等),可以使用
Math.ceil()
或Math.floor()
。
总结
Math.round(-1.5)
的计算结果是 -1,因为 round
方法会在加 0.5
后取整,负数的向下取整结果是 “远离零”的方向。