C语言为什么10.1乘100运算结果是1010.000061

土豪设计 |浏览672次
收藏|2022/08/03 13:02

满意回答

2022/08/03 13:10

在C语言中(不仅是C,其它计算机语言类同),小数(浮点)的是用二进制近似值表示的(计算机原理中有详解,你也可以去参考下IEEE-754浮点标准),所以它的浮点运算都是有误差的,你若要得某个特定的结果(如只保留整数),可用它的格式化输出 (%.f)也可以要求保留几位小数,如%.1f就是保留1位小数

whoami1978

其他回答(3)
  • 对输出格式符作了修改,程序如下:#include<stdio.h>#include<stdlib.h>int main(){ float a; a=10.1; a=a*100; printf("%1.0f\n",a); system("pause"); return 0;}程序的运行结果:
    回答于 2022/08/03 14:06
  • 应该是计算错误 因为10.1乘100等于1010。
    回答于 2022/08/03 13:59
  • 可能是float的精度问题
    回答于 2022/08/03 13:41
0人关注该问题
+1

 加载中...