float 的输入,采用 %f, %e, %g(换成大写的%F,%E,%G也可)
double 的输入,采用%lf, %le, %lg
long double 的输入,采用%Lf, %Le, %Lg(注意L是大写)
float num_1;
double num_2;
long double num_3;
//输入例
scanf("%f", &num_1);// %f可以替换为 %e 、%g
scanf("%lf", &num_2);
scanf("%Lf", &num_3);
float, double 的输出均使用%f 来实现,完整格式是 %m.nf
long double 采用%Lf 输出,完整格式是 %m.nLf(注意L是大写)
float num_1;
double num_2;
//输出例
printf("%1.2f %3.4f\n", num_1, num_2);
//float和double都采用%f来进行输出,完整的输出格式应该是%m.nf
/*在这个格式中,m指的是数据总长度(注意此长度包括小数点‘.’)
n指的是数据的精度:小数点后四舍五入保留n位。*/
//如果数据总长度小于m ,会在数据之前补上空格以保证数据长度达到m
//若数据总长度大于m,会按实际的数据长度输出。
//常见的还有%.nf ,指的是对数据长度不做限制,仅对精度作出要求。
%f 将数据以小数输出,整数部分正常输出,小数部分输出6位小数;
%e 表示按指数形式输出(科学计数法);
%g 表示自动从前两种格式中选择输出宽度较小的格式输出,**默认保留6位有效数字,并且可以去小数末尾多余的 0 **
**
严格地讲, %lf在printf下是未定义的,但是很多系统可能会接受它。要确保可移植性,就要 坚持使用%f。
**这句话转自函数专栏
所以,为确保正确,使用%f即可。