标题:double格式说明符的问题
只看楼主
pytao1991
Rank: 1
等 级:新手上路
帖 子:55
专家分:4
注 册:2015-8-26
结帖率:62.5%
已结贴  问题点数:10 回复次数:7 
double格式说明符的问题
这是教课书上的实例,我不明白的是total用的是double类型,那它的说明符不该是$%.2lf吗,可是示例代码为什么写成$%.2f这样的float类型的。
关键是这样还可使成功编译和链接。我自己也尝试把示例中$%.2f给换成$%.2lf。依然可以成功编译和链接
书上只是交代说%2.f说明符应用于浮点数变量total,输出的值带两位小数
#include <stdio.h>

int main(void)
{
    const double unit_price = 3.50;
    int quantity = 0;
    printf("Enter the number that you want to buy:");
    scanf(" %d", &quantity);

    double total = 0.0;
    if(quantity > 10)
        total = quantity*unit_price*0.95;
    else
        total = quantity*unit_price;
    printf("The price for %d is $%.2f\n", quantity,total);
    return 0;
}

[ 本帖最后由 pytao1991 于 2015-10-1 21:17 编辑 ]
搜索更多相关主题的帖子: Enter number double include quantity 
2015-10-01 21:07
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
得分:5 
%.2lf 中的l是long的简写
组合起来,楼主应该知道是什么类型了吧
对,楼主你想的没错,就是long double数据类型
float 和 double的通用格式都是f
所以,你懂的。


2015-10-01 21:26
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
得分:0 
auto n = 5
auto n = 5.5
auto n = 5f
auto n = 5L
auto n = 5LF

楼主能分辨出这几种n是什么数据类型,楼主的问题也就不攻自破了
2015-10-01 21:34
pytao1991
Rank: 1
等 级:新手上路
帖 子:55
专家分:4
注 册:2015-8-26
得分:0 
回复 2楼 hjx1120
谢谢你了,知识面又广了
我看的书上只是说float类型用%f或%e
double类型用%lf或%le
就有思维定式了觉着double就一定要用%lf
2015-10-01 21:35
pytao1991
Rank: 1
等 级:新手上路
帖 子:55
专家分:4
注 册:2015-8-26
得分:0 
回复 2楼 hjx1120
1:int
2:double
3:float
4:long
5:double也可以说成是long double吧
2015-10-01 21:38
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
得分:0 
int
double
float
long
long double
2015-10-01 21:39
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
对于scanf,float*、double*、long double* 分别对应f、lf、Lf;
对于printf,float、double、long double 也可以分别对应f、lf、Lf。

为什么printf中float和double两者既可以用f又可以用lf呢?
这是因为float作为函数参数时自动提升到double类型,两者一致。
2015-10-03 10:51
pytao1991
Rank: 1
等 级:新手上路
帖 子:55
专家分:4
注 册:2015-8-26
得分:0 
回复 7楼 rjsp
感觉好深奥,不懂啊,死记下来吧
那个double 和 long double 分别对应 lf 和Lf
那个L/f为什么你区分大小写了,有什么讲究吗?
2015-10-03 21:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-457851-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.362754 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved