C语言中%lf和%f的使用

最近做C语言的题目,经常会遇到输出函数中double类型的数据既有对应%f的又有对应%lf的,于是就总结一下。

用于printf()函数的情况

printf()函数中,%f%lf都可以用来打印double类型的数字。这是因为printf()中的float类型会自动提升为double类型。

double d = 3.14159;
printf("%f\n", d);  // 正确
printf("%lf\n", d); // 也正确,但一般不常用

在实际编程中,通常只使用 %f 来打印 double 类型的数值。

用于scanf()函数的情况

scanf ()函数中,%f %lf 有明确的区别。%f 用于读取 float 类型的数据,而 %lf 用于读取 double 类型的数据。

float f;
double d;
// 读取 float 类型的数值
scanf("%f", &f);
// 读取 double 类型的数值
scanf("%lf", &d);

如果你在 scanf 中使用了错误的格式说明符,例如使用 %f 来读取 double,或者使用 %lf 来读取 float,则会导致未定义行为,可能会出现意想不到的错误。

小结

  • 在 printf 中,%f 和 %lf 都可以用来打印 double 类型的数值,通常只使用 %f。
  • 在 scanf 中,%f 用于读取 float 类型的数据,而 %lf 用于读取 double 类型的数据。
#include <stdio.h>

int main() {
    float f;
    double d;

    // 使用 scanf 读取 float 和 double
    printf("请输入一个 float 类型的数值:");
    scanf("%f", &f);
    printf("请输入一个 double 类型的数值:");
    scanf("%lf", &d);

    // 使用 printf 打印 float 和 double
    printf("读取到的 float 值为:%f\n", f);
    printf("读取到的 double 值为:%f\n", d);  // 使用 %f 打印 double
    printf("读取到的 double 值为:%lf\n", d); // 也可以使用 %lf 打印 double

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值