fmod 函数计算结果问题。。。。
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
double x,y;
x=pow(20,77);
y=fmod(x,119);
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
}
在vc环境下调试
得到的结果是
x=1.51116e+100
y=8
为什么得到的结果y是8,而不是97?正确的应该是97(计算器验证结果97)
我想可能是x值太大的原因,但double类型的的数量级可达10^308。
所以不太明白为什么得不到正确结果。
有谁知道fmod函数的实现细节,是否参数有限制?
谢谢。。