在一个C语言实型数据程序中

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:49:10
main()
{
float a;
double b;
a=5555.55555;
b=5555.5555555555;
printf("%f\n%f\n",a,b);
}
输出结果5555.555664 5555.555556
a为单精度浮点型,有效为7位,故小数3位后为无效数字.而程序输出a的结果小数后3位的0.000664是怎样取值??

呵呵.这是由于你的数据类型有误,所以导致打印结果也有误,在C语言中,经常有这样的问题,它不会给你报错,而是在出错的地方产生一些随机数,我有一次还遇到打印图形出来呢,你那个程序,你的a值在定义时就不符合规则,那当然也就会出现最终结果错误咯...

后三位 是随机的