| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 2992 人关注过本帖
标题:为什么double b=1/5; 的结果为0?
只看楼主 加入收藏
凯特烦恼
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-9-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
为什么double b=1/5; 的结果为0?
图片附件: 游客没有浏览图片的权限,请 登录注册


问题:为什么double b=1/5;  的结果为0?
ps:新手望各位大佬多多指教,谢谢。
搜索更多相关主题的帖子: 多多 double 结果 
2019-11-17 10:13
深秋2015
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:412
专家分:1544
注 册:2015-10-13
收藏
得分:7 
直接贴代码

从此以后我都不敢抬头看
仿佛我的天空失去了颜色
2019-11-17 10:16
凯特烦恼
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-9-23
收藏
得分:0 
回复 2楼 深秋2015
好的,谢谢。
#include <iostream>
using namespace std;
int main() {
    int a = 10;
    double b = 1 / 5;
    cout << "a=" << a << endl;
    cout << "b=" << b << endl;
    cout << "a+b=" << a + b << endl;
}
2019-11-17 10:18
深秋2015
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:412
专家分:1544
注 册:2015-10-13
收藏
得分:0 
虽然b定义为了double类型,但是1和5都是int型,所以相除仍是0

改成这样:
double b = double(1) / 5;


从此以后我都不敢抬头看
仿佛我的天空失去了颜色
2019-11-17 10:30
凯特烦恼
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-9-23
收藏
得分:0 
回复 4楼 深秋2015
好的,谢谢,这样好使了。
2019-11-17 12:04
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:7 
    double b = 1.0 / 5;
    double b = 1/ 5.0;
2019-11-17 12:36
wyx_luffy
Rank: 2
等 级:新手上路
威 望:3
帖 子:5
专家分:7
注 册:2019-11-14
收藏
得分:7 
因为当除号两端皆为整数时,编译系统将其默认为整除,于是乎1/5=0.2,int(0.2)==0!!!

所以应将1或5中任一一数改为1.0或5.0
double b=1.0/5
2019-11-20 17:50
testpilot
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-11-27
收藏
得分:0 
1.0和1区别还是挺大的
2019-11-27 17:24
快速回复:为什么double b=1/5; 的结果为0?
数据加载中...
 
   



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

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