标题:关于double和%f,%lf的问题
取消只看楼主
凤凰院凶假
Rank: 2
来 自:春天里
等 级:论坛游民
威 望:1
帖 子:36
专家分:33
注 册:2016-12-22
结帖率:83.33%
已结贴  问题点数:15 回复次数:3 
关于double和%f,%lf的问题

我在撸这段代码时没考虑精度损失,于是就用了%f,然后在编译时无论输入什么值,输出的值都是固定点,而将%f改成%lf后就正常了。

我在想即使精度损失了,但应该还会有个变化的值;

程序代码:
#include<stdio.h>
#define JL 3.785
#define YL 1.609

int main()
{
    double mile;
    double gallon;
    double mile_per_gallon, liter, liter_per_100km, km;             //double 需要用%lf
    printf("Enter mile:\n");
    scanf("%f", &mile);
    printf("And gallon:\n");
    scanf("%f", &gallon);
    mile_per_gallon = mile / gallon;
    printf("mile per gallon=%f\n", mile_per_gallon);
    liter = JL*gallon;
    km = YL*mile;
    liter_per_100km=liter / (100.0 * km);
    printf("liter per 100km=%f", liter_per_100km);

    return 0;
}


%时任意输入两组值
1.

2.


改成%lf后就正常了


为什么产生这样的结果?
请大佬们指教一下。
搜索更多相关主题的帖子: double 输入 define printf scanf 
2017-10-06 15:48
凤凰院凶假
Rank: 2
来 自:春天里
等 级:论坛游民
威 望:1
帖 子:36
专家分:33
注 册:2016-12-22
得分:0 
第一行“固定点”----改成固定的值  


2017-10-06 15:51
凤凰院凶假
Rank: 2
来 自:春天里
等 级:论坛游民
威 望:1
帖 子:36
专家分:33
注 册:2016-12-22
得分:0 
扎心了,基础还是要学好
2017-10-06 16:14
凤凰院凶假
Rank: 2
来 自:春天里
等 级:论坛游民
威 望:1
帖 子:36
专家分:33
注 册:2016-12-22
得分:0 
其实我最疑惑的是,输出的值一直没变,
2017-10-06 16:23



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




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

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