编程论坛
注册
登录
编程论坛
→
C++教室
为什么double b=1/5; 的结果为0?
凯特烦恼
发布于 2019-11-17 10:13, 3268 次点击
只有本站会员才能查看附件,请
登录
问题:为什么double b=1/5; 的结果为0?
ps:新手望各位大佬多多指教,谢谢。
7 回复
#2
深秋2015
2019-11-17 10:16
直接贴代码
#3
凯特烦恼
2019-11-17 10:18
回复 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;
}
#4
深秋2015
2019-11-17 10:30
虽然b定义为了double类型,但是1和5都是int型,所以相除仍是0
改成这样:
double
b =
double
(
1
) /
5
;
#5
凯特烦恼
2019-11-17 12:04
回复 4楼 深秋2015
好的,谢谢,这样好使了。
#6
花脸
2019-11-17 12:36
double
b =
1.0
/
5
;
double
b =
1
/
5.0
;
#7
wyx_luffy
2019-11-20 17:50
因为当除号两端皆为整数时,编译系统将其默认为整除,于是乎1/5=0.2,int(0.2)==0!!!
所以应将1或5中任一一数改为1.0或5.0
double
b=
1.0
/
5
#8
testpilot
2019-11-27 17:24
1.0和1区别还是挺大的
1