关于C语言中浮点数的输入输出格式问题

浮点数的 输入

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, %e, %g的区别:

%f 将数据以小数输出,整数部分正常输出,小数部分输出6位小数;

%e 表示按指数形式输出(科学计数法);

%g 表示自动从前两种格式中选择输出宽度较小的格式输出,**默认保留6位有效数字,并且可以去小数末尾多余的 0 **

关于部分系统输出时可使用%lf 实现的问题:

**

严格地讲, %lf在printf下是未定义的,但是很多系统可能会接受它。要确保可移植性,就要 坚持使用%f。

**这句话转自函数专栏

所以,为确保正确,使用%f即可。

你可能感兴趣的:(C语言一些很基础的知识点,c语言)