摘要 讨论自然对数 ln(x)的计算精度问题。
例1. 计算 ln(0.999999999999996) .
不妨用Python计算,则有:
若用Java代码计算:
import java.lang.Math;
public class Ln{
public static void main(String[] args) {
double x = 0.999999999999996;
double result = Math.log(x);
System.out.println(result);
}
}
则运行后,输出同样的结果:-3.9968028886505714E-15 .
然而,正确值是 -0.4000000000000008e-14(ISRealsoft 提供)。这样,二者的输出中似乎没有正确数字。实际上,由计算机的错误计算(二十九)知,输出中有3位数字是正确的。故错误率均为 (16-3)/16 = 81.25% .