Java中Math.round(0.49999999999999994)返回结果是什么,你知道吗?

java-教程王 Java经验 发布时间:2022-02-09 09:33:57 阅读数:11498 1
下文笔者讲述java中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;
} 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202202/16443704732286.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者