Math.round 的实施速度更快?

2024-01-30

这段代码有什么缺点吗?它似乎是更快(并且正确)的版本java.lang.Math.round?

public static long round(double d) {

    if (d > 0) {
        return (long) (d + 0.5d);
    } else {
        return (long) (d - 0.5d);
    }
}

它利用了以下事实:在 Java 中,将长舍入截断为零。


有一些特别案例 http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Math.html#round%28float%29内置方法处理哪些内容,而您的代码不处理哪些内容。从文档中:

  • 如果参数是NaN,结果为0。
  • 如果参数为负无穷大或任何小于或等于值的值Integer.MIN_VALUE,结果等于Integer.MIN_VALUE.
  • 如果参数为正无穷大或任何大于或的值 等于Integer.MAX_VALUE,结果等于Integer.MAX_VALUE.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Math.round 的实施速度更快? 的相关文章

随机推荐