摘要 探讨 的计算精度问题。
由计算机的错误计算(九十六)知,IEEE 754-2019标准中含有 运算。
另外,似乎没有语言直接编程实现内置了该运算。
例1. 已知 x=-0.9999999999321 . 计算
不妨用Java编程计算:
import java.lang.StrictMath;
public class Log10p1{
public static void main(String[] args) {
double x = -0.9999999999321;
double result = StrictMath.log1p(x)/StrictMath.log(10);
System.out.println(result);
}
}
则运行后输出为 -10.168130104572798 .
若在线运行Ruby:
x = -0.9999999999321
result = Math.log10(1+x)
puts result
则有相同的输出:-10.168130104572798 .
然而,16位正确值是 -0.1016813022571950e2(ISRealsoft 提供)。这样,二者的错误率均为 8/16 = 50% .