摘要 探讨 的计算精度问题。
从计算机的错误计算(九十九)可知, 在IEEE 754-2019的列表中。因此,有必要分析其计算准确度。
例1. 已知 计算
若利用 Python的SciPy库中函数计算,则有:
若用Java的pow函数计算:
import java.lang.Math;
public class Exp10{
public static void main(String[] args) {
double x = 300.333;
double result = Math.pow(10, x);
System.out.println(result);
}
}
则运行后输出似乎比Python结果更精确(因为位数多1位):2.1527817347245057E300 .
然而,正确值是 0.2152781734724373e301(ISRealsoft 提供)。这样,二者的错误率均为 3/16 = 18.75% .
例2. 已知 计算
不妨继续在Python下运行,则有:
同样,仍然用Java计算(改例1代码中的300.333为5.55),则运行后输出完全相同:354813.3892335753 .
事实上,正确值是 0.3548133892335755e6(ISRealsoft 提供)。这样,二者均有1位错误数字。
点评:两个案例揭示了错误数字的个数是有规律的:其等于自变量的整数位数。