Java中Math.round(0.49999999999999994)返回结果是什么,你知道吗?
下文笔者讲述java中Math.round返回结果的简介说明,如下所示:
下文笔者通过示例的方式讲述Math.round的结果简介说明,如下所示:
下文笔者通过示例的方式讲述Math.round的结果简介说明,如下所示:
Java6及以前的版本中
round(x)其效果等同于floor(x+0.5)
即:
以上代码的效果为
0.5 + 0.499999999999999999994 =1
static void print(double d) {
System.out.printf("%016x\n", Double.doubleToLongBits(d));
}
public static void main(String args[]) {
double a = 0.5;
double b = 0.49999999999999994;
print(a); // 3fe0000000000000
print(b); // 3fdfffffffffffff
print(a+b); // 3ff0000000000000
print(1.0); // 3ff0000000000000
}
-------------------------------------------------------------------------
java7:
public static long round(double a) {
if (a != 0x1.fffffffffffffp-2)
return (long)floor(a + 0.5d);
else
return 0;
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


