.额,我写了以下程序段:
#define qunimade 3.61
main()
{
float _9u, u9_;
_9u=1.234e1; u9_=_9u*qunimade;
printf("ni jiu shi niao = %f",u9_);
}
结果应该是44.5474 可编译系统的结果是44.547401
后面的01是哪来的???
(编译系统是TC)
.额,系统误差?
实型数据中 系统会分配4Byes给float.(单精度float有效位应为6-7位.float与double的区别在于 显示的有效位数与指数部分显示范围的不同而已.) 1.234e1是实型常量的指数形式,可以用以float嘛.难道是因为float显示的有效位数不够,才说要用double?
.照你们说的,是不是说 32位的float中,有效数给24位,指数给8位.那要输怎样的数才不会有这后面多余的部分呢?