我已经在我的电脑中运行了一个非常简单的程序,但这给了我错误的答案。当我将代码复制到在线IDE时,答案是正确的。我正在使用CodeBlocks。问题出在哪里??
在线IDE链接:https://ideone.com/yKV5NV
这是我的PC中结果的图像:
我的代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(){
int x=5,k=2,ans;
ans=(pow(x,k+1));
printf("%d",ans);
return 0;
}
PS:我认为可能是因为双数据类型舍入错误。但是为什么它每次都会发生。如果我是对的,该如何解决?
答案 0 :(得分:0)
我认为这可能是因为浮点数表示无法容纳您期望的“精确”值。由于相同的输入数据,每次都会发生这种情况,那为什么不呢?关于修复方法,实际上没有什么要修复的,这只是浮点数的工作方式。