整数用pow要小心啊。。

来源:互联网 发布:数学算法 编辑:程序博客网 时间:2024/06/02 01:51

今天写个程序,结果总是和正确答案相差1,百思不得其解,只好一步步缩小范围排查,最后发现居然是pow中整数的问题。
例如如下代码:

#include <iostream>#include <cmath>using namespace std;int main(){    cout<<(int)pow(7,7)<<endl;    cout<<(int)pow(7.0,7)<<endl;    cout<<pow(7,7)<<endl;    cout<<pow(7.0,7)<<endl;     return 0;}

在devc++中运行的结果为

823542823543823543823543

在vc6中则为

823543823543823543823543

总之以后用pow一定要记得参数都要转为double。。用pow要慎重一些了。。

0 0
原创粉丝点击