| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 100094 人关注过本帖
标题:关于double和%f,%lf的问题
只看楼主 加入收藏
凤凰院凶假
Rank: 2
来 自:春天里
等 级:论坛游民
威 望:1
帖 子:36
专家分:33
注 册:2016-12-22
结帖率:83.33%
收藏
已结贴  问题点数:15 回复次数:5 
关于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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10570
专家分:43038
注 册:2014-5-20
收藏
得分:15 
double类型输入输出是用"%lf"格式
2017-10-06 15:58
凤凰院凶假
Rank: 2
来 自:春天里
等 级:论坛游民
威 望:1
帖 子:36
专家分:33
注 册:2016-12-22
收藏
得分:0 
扎心了,基础还是要学好
2017-10-06 16:14
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
收藏
得分:0 
这个不是精度的问题。是存储的问题。scanf中用%f和%lf数据的存储方式不同。
2017-10-06 16:18
凤凰院凶假
Rank: 2
来 自:春天里
等 级:论坛游民
威 望:1
帖 子:36
专家分:33
注 册:2016-12-22
收藏
得分:0 
其实我最疑惑的是,输出的值一直没变,
2017-10-06 16:23
快速回复:关于double和%f,%lf的问题
数据加载中...
 
   



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

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