我知道StrictMath
遵循给定的算法,并且在每台机器上都会给出相同的结果;但是Math
更准确,我看到它的使用率更高。哪个是首选?我显然希望可重复性,但准确性对我也很重要。
最佳答案
根据accuracy的真实定义,StrictMath
更准确。一般来说,Math
比StrictMath
快,但并非总是如此。通常,Math
库函数只是调用StrictMath
实现。
无论如何,我认为您的问题的答案可以直接从Math
Javadoc找到:
与StrictMath类的某些数字方法不同,Math类的等效函数的所有实现均不是
定义为逐位返回相同结果。这种放松
允许在严格可重复性的情况下实现性能更好的实施
不需要。
默认情况下,许多Math方法只是简单地在StrictMath中调用等效方法来实现它们。代码生成器是
鼓励使用特定于平台的本机库或微处理器
说明(如果有)以提供更高的性能
数学方法的实现。如此高性能
实现仍必须符合Math规范。
对于大多数应用程序,通用的Math
库是更好的选择。如果只考虑很小的舍入误差,则StrictMath
是必要的。因此,除非您的准确性必须非常强,否则不要将不一致缠在轴上。
关于java - 在Java中,为了保持一致性,StrictMath仍然比Math更受欢迎吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32977034/