我在IEEEremainder()包中的两个地方找到了lang


java.lang.Math.IEEEremainder()
java.lang.StrictMath.IEEEremainder()


我的问题是两种方法相同还是不同?

最佳答案

如文档中所述:


  与类StrictMath的某些数字方法不同,类Math的等效函数的所有实现未定义为返回逐位相同的结果。这种放松允许在不需要严格的可重复性的情况下实现性能更好的实现。


由于x86(-64)体系结构使用IEEE 754浮点,因此在x86 OpenJDK实现上,Math倾向于委派给StrictMath,在这种情况下会这样做,但这不是规范所必需的。

07-24 09:54