浮点数范围

Range of floating-point number

我正在阅读 "What every computer scientist should know about floating-point arithmetic" 并且遇到了一些我不明白的东西。论文断言,对于给定的 B 和 E(基数和指数),归一化浮点数的最大值为 B x B^E,最小值为 B^E。我不明白它的最大部分。

让我们以 B=10 P=3 和 E=4 的情况为例。此数字可以采用的最小值为 1.00 x 10^4,等于 10^4 (B^E)。最大值为 9.99 x 10^4,接近 B x B^E 但不完全等于它。论文没有提到任何近似值,所以我假设我做错了什么。谁能解释为什么最大值是 B x B^E

你必须结合上下文来看待它。该部分讨论的是通过最接近的浮点表示来近似数字时的相对误差。有些数字更接近 B·B^E 而不是 B·B^E - ulp(B^E),这些数字将被转换为 B·B^E。使用下一个指数分析错误将是一个问题,因为源编号将超出范围并且 ulp 将不同。在闭区间[B^E, B·B^E]内分析更有意义。

例如,对于 B=10、P=3、E=4,数字 9.996·10^4 比 9.99·10^4 更接近 10.00·10^4,并且使用 ulp 0.01 ·10^5 用于错误分析将是一个错误,因为 9.996·10^4 与 [10^5, 9.99·10^5].

属于不同的区间