为什么实型数据可以有8位有效数字??

来源:百度知道 编辑:UC知道 时间:2024/06/23 15:45:53
【例.9-2】实现保留小数点后位有效数字。
 
main()
{
float a=12.3456;
a=(int)(a*100+0.5)/100.0;
printf("a=%f",a);
}
程序运行的结果为:    a=12.350000
分析:1、由于(int) 的作用,(int)(a*100+0.5)运算的结果为为整型,
2、除.0运算时自动转换为实型.350000,所以结果为.35。

现在我想问,实型(float)数据,不是应该有七位有效数字,算上小数点正好八位吗?怎么这个结果里面有效数字有八位了??
如果不是float,而是更长的数据类型,那为什么只有四个零?

环境:tc2.0

实型(float)数据默认的小数点后是6位。可以修改
比如:printf("a=%。2f",a)就是小数点后2位,
printf("a=%7。2f",a)表示输出7位,小数点算一位,小数也算一位,两位小数,不足7位的前面补空格(printf("%7。2f",1.123)输出 1.12(前面有3个空格))
还有(int型):printf("a=%5d",a)表示输出5位,不足5位的前面补空格 printf("a=%5.3d",a)表示输出5位,3个数字,前面2个空格,数字不足3位的前面补0 printf("a=%.3d",a)表示输出3个数字,数字不足3位的前面补0