摘要 探讨 函数的错误计算。
由计算机的错误计算(五十五)知,国际 IEEE 754 标准中, 函数的定义域是
. 那么,在这个实数域范围内,软件的实现效果如何?
例1. 用 Java 计算 其中
使用下列代码计算:
import java.lang.Math;
public class CosPi{
public static void main(String[] args) {
double x = 98765432101234.56;
double result = Math.cos(Math.PI * x);
System.out.println(result);
}
}
则输出为 -0.15785962423964084 .
事实上,保留 16位有效数字的正确值为 -0.1873813145857246 (由 ISReal 软件提供)。Java 给出的结果中只有 1位正确数字。
不能这样编程吧?语法没问题,逻辑没问题;运行也没溢出。哪儿出了问题呢?