1.1*100运算结果就是110,没有小数。为啥变成10.1计算结果就是有小数,非正确结果。是哪里出问题了吗
?
另:请问如何更改才能使运算结果变成1010。
在C语言中(不仅是C,其它计算机语言类同),小数(浮点)的是用二进制近似值表示的(计算机原理中有详解,你也可以去参考下IEEE-754浮点标准),所以它的浮点运算都是有误差的,你若要得某个特定的结果(如只保留整数),可用它的格式化输出 (%.f)

也可以要求保留几位小数,如%.1f就是保留1位小数
可能是float的精度问题
应该是计算错误 因为10.1乘100等于1010。对输出格式符作了修改,程序如下:
#include
#include
int main()
{
float a;
a=10.1;
a=a*100;
printf("%1.0f\n",a);
system("pause");
return 0;
}
程序的运行结果:
