将浮点值舍入到java中最接近的整数的最有效方法是什么?

rob*_*ess 3 java optimization rounding floating-accuracy

我已经看到很多有关舍入浮点值的SO的讨论,但考虑到效率方面没有可靠的问答.所以这里是:

将浮点值舍入到最接近的整数的最有效(但正确)方法是什么?

(int) (mFloat + 0.5);
Run Code Online (Sandbox Code Playgroud)

要么

Math.round(mFloat);
Run Code Online (Sandbox Code Playgroud)

要么

FloatMath.floor(mFloat + 0.5);
Run Code Online (Sandbox Code Playgroud)

或者是其他东西?

我最好使用标准java库中可用的东西,而不是我必须导入的一些外部库.

Ste*_*n C 5

基于我认为您所指的Q&A,各种方法的相对效率取决于您使用的平台.

但底线是:

  • 最新的JRE具有Math.floor/ StrictMath.floor和的性能修复
  • 除非你做了很多的四舍五入,否则你可能没有任何区别.

参考文献: