下面是一些我混淆的代码:
public class MathOpration {
public static void main(String args[])
{
float F1 = -5.5f;
float F2 = 5.5f;
float F3 = -5.49f;
float F4 = 5.49f;
System.out.println("Round F1 is " + Math.round(F1));
System.out.println("Round F2 is " + Math.round(F2));
System.out.println("Round F3 is " + Math.round(F3));
System.out.println("Round F4 is " + Math.round(F4));
}
}
上述结果是:
Round F1 is -5
Round F2 is 6
Round F3 is -5
Round F4 is 5
我的困惑是-5如何成为F1的输出?
任何帮助都将不胜感激。
5条答案
按热度按时间rjzwgtxy1#
请阅读
round
的文档:换句话说,结果等于表达式的值:
这解释了为什么
-5.5f
舍入到-5,而5.5f
则舍入到6。(floor
给出“返回不大于参数且等于数学整数的最大(最接近正无穷大)双精度值。”)bvuwiixz2#
当你围起来的时候,你就上去了。
at0kjp5o3#
我的疑问是-5是如何成为F1的输出?
.5总是向上舍入。
由于-5.5是负数,所以它向上舍入为-5。
vmdwslir4#
有时更快的等价物是
mwyxok5s5#
如果结果不是你想要的,你可以随意取整。看看这个关于舍入的小解释。
Link升