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; }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。