为了账号安全,请及时绑定邮箱和手机立即绑定

%d和%f的问题

#include <stdio.h>

int main()

{

    double a,b,c,d;

    double result;

    a = 1;

    b = 9;

    c = 3;

    d = 4;

    result = a + b / c * d;    //在这里体验哦~

    printf("%d\n", result);

    return 0;

}

这里的%d改为%f答案就正确可是%d为什么计算的结果错误

正在回答

3 回答

double 应该用%lf     ,float用%f

1 回复 有任何疑惑可以回复我~
#1

onemoo

对printf系列函数来说,double和float都对应%f
2015-09-06 回复 有任何疑惑可以回复我~
#2

hhh112123123 回复 onemoo

那%lf呢? 定义Long 类型 用%ld,double用%lf。1 printf输出float和double都可以用%f,double还可以用%lf。2 scanf输入float用%f,double输入用%lf,不能混用。
2015-09-06 回复 有任何疑惑可以回复我~
#3

onemoo 回复 hhh112123123

标准中确实有%lf,但对于printf函数来说,用于double的就是%f,不用刻意区别。 因为对于可变参数函数来说,在传参时,float会被自动提升为double,所以才说float和double都应使用%f,非要区别出来%lf并无意义。 另外,因为通常float和double在内存中的存储结构不同,所以在scanf中才必须要区分开来。
2015-09-06 回复 有任何疑惑可以回复我~

格式输出符%d表示输出整数,%f表示输出小数。

这里变量result是double型,当然用%f。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

%d和%f的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信