我已经看到很多关于 SO 与四舍五入浮点值相关的讨论,但没有考虑到效率方面的可靠问答。所以这里是:
将浮点值四舍五入为最接近的整数的最有效(但正确)的方法是什么?
(int) (mFloat + 0.5);
或
Math.round(mFloat);
或
FloatMath.floor(mFloat + 0.5);
还是别的?
我最好使用标准 java 库中可用的东西,而不是我必须导入的一些外部库。
最佳答案
根据我认为您所指的问答,各种方法的相对效率取决于您使用的平台。
但最重要的是:
- 最新的 JRE 对
Math.floor
/StrictMath.floor
进行了性能修复,并且 - 除非您进行了大量的舍入,否则您采用哪种方式可能没有任何区别。
引用资料:
- Does this mean that Java Math.floor is extremely slow?
- http://bugs.sun.com/view_bug.do?bug_id=6908131 (“java.lang.StrictMath.floor(double) & java.lang.StrictMath.ceil(double) 的纯 Java 实现”)
关于java - 在 Java 中将浮点值四舍五入为最接近的整数的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12091014/