【发布时间】:2018-05-03 07:27:37
【问题描述】:
'
#include <stdio.h>
#include <math.h>
int main(){
int i;
float num = 4.700;
for(i=1;i<5;i++){
printf("%0.3f\tx%d\t\t=%d\n",num,(int)pow(10,i),(int)(num*pow(10,i)));
}
return 0;
}
' 此代码将以下内容打印到控制台: '
4.7000 x10 =46
4.7000 x100 =469
4.7000 x1000 =4699
4.7000 x10000 =46999
' 此结果与所有浮点值不一致
1.2000 打印出 ...120...1200 等
1.8000又奇怪了
我在 Codeblocks 工作,我的问题是为什么有些浮点数会这样反应?我缺少 C 或 mingw 编译器的一些基本内容吗?还是我的代码有问题?
感谢您的帮助,如果是重复的问题,我们很抱歉
【问题讨论】:
标签: c mingw codeblocks floating-accuracy