摘要 用另一种方法计算计算机的错误计算(五十五)中案例:先使自变量与 取余,再计算取余后的余弦值,这时,得到了不同的输出。因此,即使不清楚正确结果,Python 与 Visual Studio 也各自自证错误。
有网友反映,对于(五十五)中案例,若按照(五十四)中方法,先使自变量与 取余,再计算取余后的余弦值,则得到不同的输出。
下面还原这位网友的计算过程。
例1. 计算 的值。
先看 Python的计算过程与输出:
这样得到了与(五十五)中不同的结果。因此,即使不知道正确结果,也知道Python出错了。
然后讨论 Visual Studio 2010的输出。
下面是代码:
#include "stdafx.h"
#include <math.h>
#include <stdlib.h>const double pi = 3.14159265358979323846;//取余数
double mod_2pi(double x)
{double quotient = floor(x / (2 * pi));double remainder = x - (quotient * (2 * pi));return remainder;
}int main()
{double x = pow(30,(double)65); double y= cos(mod_2pi(x));printf("%lf\n",y);return 0;
}
运行后,输出为 1.000000 . 这样,同样与(五十五)中结果不一致。Visual Studio自己的输出就证明了它自己具有错误。
怎么样感觉?难不难?您写出来的高精度运算代码能计算出准确结果吗?换个方法计算仍然是正确结果吗?