如题, 看了CPP 程序清单3.7, 说到float及double类型浮点数打印时均用%f格式符,因为printf函数使用时,float类型会自动被转换为double类型, 书上给了例子,备注了该例子演示了这个特性
#include<stdio.h>
int main(void)
{
float aboat=32000.0;
double abet=2.14e9;
long double dip=5.32e-5;
printf("%f can be written as %e\n",aboat,aboat);
printf("%f can be written as %e\n",abet,abet);
printf("%f can be written as %e\n",dip,dip);
getchar();
return 0;
}
问题如下:
这个例子体现了printf函数下,float被转换为double的特性了吗?
没有看出来啊....double类型精度更高吗?那么小数点位数是不是应该更多?
查了下,浮点数小数点默认是6位, 那就想不通该例子哪里体现了文中所提的转换特性了..
#include<stdio.h>
int main(void)
{
float aboat=32000.0;
double abet=2.14e9;
long double dip=5.32e-5;
printf("%f can be written as %e\n",aboat,aboat);
printf("%f can be written as %e\n",abet,abet);
printf("%f can be written as %e\n",dip,dip);
getchar();
return 0;
}
问题如下:
这个例子体现了printf函数下,float被转换为double的特性了吗?
没有看出来啊....double类型精度更高吗?那么小数点位数是不是应该更多?
查了下,浮点数小数点默认是6位, 那就想不通该例子哪里体现了文中所提的转换特性了..