为什么最后会多个2呢?
#include<stdio.h>
void main()
{
float x;
scanf("%6f",&x);
printf("%f\n",x);
}
我输入283.1900,为什么结果是283.190002?
[解决办法]
浮点数不是连续表示的
数据格式 符号位 底数位 指数位
单精度 float 1 23 8
双精度 double 1 52 11
扩展精度 1 64 15
[解决办法]
我也是初学,我看的书中有关于这个现象的例子和解释(虽然没有解释得十分详细)
#include <stdio.h>
int main (void)
{
float floatingVar = 331.79;
printf ("floatingVar = %f\n", floatingVar);
return 0;
}
输出:floatingVar = 331.790009
书中解释:“我们在程序中给浮点变量floatingVar赋以初值331.79,但是计算机的输出却是331.790009。实际的输出结果取决于读者所使用的计算机。这个误差是由计算机内部表示浮点数的格式引起的。”