摘要 探讨 的计算精度问题。
正如其它许多函数或运算一样,以2为底的对数运算,也包含在 IEEE 754-2019 的列表中[1]。
例1. 已知 计算
不妨用Go代码计算:
package main
import (
"fmt"
"math"
)
func main() {
x := 0.999999999543
log2Value := math.Log2(x)
fmt.Printf("%v", log2Value)
}
则运行后输出为 -6.593116243200681e-10 .
若用Python库函数计算,则几乎有同样的输出:
然而,正确值是 -0.6593116338369090e-9(ISRealsoft 提供)。这样,二者均有9位错误数字。错误率均为 9/16 = 56.25% .
参考文献
[1] 754-2019 - IEEE Standard for Floating-Point Arithmetic | IEEE Standard | IEEE Xplore