【发布时间】:2016-02-26 18:02:57
【问题描述】:
java.lang.Math 文档说很多功能,比如Math.pow:
计算结果必须在精确结果的 1 ulp 范围内。
但我无法准确找到这意味着什么。是排他性的还是包容性的?换句话说,如果精确的结果可以用双精度表示,返回的值是否包含精确的结果,或者仍然可能偏离 1 个 ULP?
例如,我们可以依赖Math.pow(3.0, 2.0) == 9.0吗?我知道使用相等比较对于双打来说几乎总是一个坏主意,所以我主要是出于好奇而询问他们,以便在人们做类似的事情时能够指出他们的错误(或让他们放心)。
【问题讨论】:
标签: java floating-point precision floating-accuracy