今天看到一个Java基础题,如下:
Math.round(11.5)的结果是( ),Math.round(-11.5)的结果是多少?
A:11,-11
B:12,-11
C:11,-12
D:12,-12
借此引入Math.round()方法的使用:
方法:public static int round(float a)
返回最接近参数的 int。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 int 类型。换句话说,结果等于以下表达式的值:
(int)Math.floor(a + 0.5f)
特殊情况如下:
- 如果参数为 NaN,那么结果为 0。
- 如果结果为负无穷大或任何小于等于 Integer.MIN_VALUE 的值,那么结果等于 Integer.MIN_VALUE 的值。
- 如果参数为正无穷大或任何大于等于 Integer.MAX_VALUE 的值,那么结果等于 Integer.MAX_VALUE 的值。
所以对于开篇引出的题目,应该选B。
特殊情况示意:
System.out.println(Math.round(Math.sqrt(-1)));//结果为0
当输入的值数据类型为double时,方法和上述相同。