首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么最后会多个2呢?该如何处理

2012-02-22 
为什么最后会多个2呢?#includestdio.hvoid main(){float xscanf(%6f,&x)printf(%f\n,x)}我输入28

为什么最后会多个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。实际的输出结果取决于读者所使用的计算机。这个误差是由计算机内部表示浮点数的格式引起的。”

热点排行