| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 229 人关注过本帖
标题:大佬们萌新求助
只看楼主 加入收藏
miop
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-9-8
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:4 
大佬们萌新求助
#include<stdio.h>
int main()
{
    double x;
    x = 8 / 5;
    printf("%.2lf",x);
    return 0;
}
这个代码输出的是1.00
但是我想输出1.60
也就是说它自动舍弃了
是哪里出了问题嘛
搜索更多相关主题的帖子: return 代码 输出 自动 printf 
2021-09-08 10:50
自由而无用
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:140
专家分:378
注 册:2021-8-9
收藏
得分:15 
//online parser: https://www.bccn.net/run/
程序代码:
#include <stdio.h>

#define CAST2D(_d) (double)(_d)

int main(int argc, char *argv[])
{
    double x;
    
    x = CAST2D(8) / CAST2D(5);
    printf("%.2lf",x);
    
    return 0;
}
2021-09-08 10:54
miop
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-9-8
收藏
得分:0 
回复 2楼 自由而无用
所以大佬您是先将CAST2D这个标识符定义成了8和5?
为什么就能输出1.6了呢?
2021-09-08 11:04
diycai
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:8
帖 子:36
专家分:178
注 册:2021-5-18
收藏
得分:5 
回复 3楼 miop
#include<stdio.h>
int main()
{
    double x;
    x = 8.0 / 5;
    printf("%.2lf",x);
    return 0;
}

想了解原理,那你就需要详细阅读《编译原理》了。
具体到这个问题来说,8和5都是整型,计算结果也是整型,最后才赋值给浮点型。
2021-09-08 11:08
miop
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-9-8
收藏
得分:0 
回复 4楼 diycai
好的 我知道了 谢谢大佬们!!
2021-09-08 11:10
快速回复:大佬们萌新求助
数据加载中...
 
   



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

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