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

本文详细介绍了C语言中浮点数(float, double, long double)的输入输出方法及格式控制,包括%f, %e, %g等格式符的用法区别,并提供了具体的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

浮点数的 输入

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即可。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值