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

小白自学,请诸位前辈帮忙解答

2012-08-21 
小白自学,请各位前辈帮忙解答#include stdio.hvoid main(){float a,bchar caint i97a31.1111b

小白自学,请各位前辈帮忙解答
#include "stdio.h"
void main()
{float a,b;
char c='a';
int i=97;
a=31.1111;
b=28.333;
printf("%f,%7.4f\n",a+b,a-b);
printf("%c,%d\n",c,c);
printf("%c,%d\n",i,i);
printf("%s,%%\n","china");
}
该程序的输出结果是:
59.444099,2.7781
a,97
a,97
china,%
问题:正常思路来说a+b=59.444100,视频中说%f是以实数形式输出,有效数字是7位,后面的数都是有误差的,所以是59.444099,如果说有效数字是7位的话,那59.444只有5位有效数字,还没到七位,为什么从59.444开始后面的100已经变成099不精确了?


[解决办法]
http://www.cnblogs.com/bossin/archive/2007/04/08/704567.htm
本来我也不知道,看完上面应该能理解
[解决办法]
用10进制小数不能精确表示某些三进制小数0.1(3)=0.33333333333……(10)
同理,用二进制小数也不能精确表示某些10进制小数。

[解决办法]
赵老师.....回答的才是精髓

热点排行