java.lang.Math和java.lang.StrictMath有什么区别?

java.lang.Math和java.lang.StrictMath有什么区别?,第1张

java.lang.Math和java.lang.StrictMath有什么区别?

Math
该类的Javadoc
提供了有关两个类之间差异的一些信息:

与class的某些数字方法不同,class

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

默认情况下,许多

Math
方法只是在
StrictMath
实现中调用等效方法
。鼓励代码生成器使用特定于平台的本机库或微处理器指令(如果可用),以提供方法的更高性能的实现
Math
。这种更高性能的实现仍必须符合的规范
Math

因此,

Math
该类列出了有关某些 *** 作应该执行的一些规则,但是它们并不要求在所有库实现中都返回 完全相同的 结果。

这允许库的特定实现返回类似的结果,但是如果例如

Math.cos
调用该类,则不能返回完全相同的结果。这将允许特定于平台的实现(例如使用x86浮点和SPARC浮点),这些实现可能会返回不同的结果。

( 有关特定于平台的实现的示例,请参阅Wikipedia中Sine文章的“
软件实现”部分。)

但是,使用时

StrictMath
,不同实现返回的结果
必须 返回相同的结果。对于需要在不同平台上再现结果的情况,这将是理想的。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5488021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存