gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:50:56 27 4
gpt4 key购买 nike

显然 java.lang.StrictMath包含 java.lang.Math 的附加函数(双曲线等)没有,但是两个库中的功能有区别吗?

最佳答案

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

Unlike some of the numeric methods of class StrictMath, all implementations of the equivalent functions of class Math are not defined to return the bit-for-bit same results. This relaxation permits better-performing implementations where strict reproducibility is not required.

By default many of the Math methods simply call the equivalent method in StrictMath for their implementation. Code generators are encouraged to use platform-specific native libraries or microprocessor instructions, where available, to provide higher-performance implementations of Math methods. Such higher-performance implementations still must conform to the specification for Math.

因此,Math 类列出了一些关于某些操作应该做什么的规则,但它们并不要求在所有实现中返回相同的结果 exact图书馆。

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

(有关特定平台实现的一些示例,请参阅维基百科中 Software Implementations 文章的 Sine 部分。)

但是,对于 StrictMath ,不同实现返回的结果必须返回相同的结果。这对于需要在不同平台上重复结果的情况是可取的。

关于java - java.lang.Math 和 java.lang.StrictMath 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4232231/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com