注册 登录
编程论坛 C++教室

为什么double b=1/5; 的结果为0?

凯特烦恼 发布于 2019-11-17 10:13, 3268 次点击
只有本站会员才能查看附件,请 登录


问题:为什么double b=1/5;  的结果为0?
ps:新手望各位大佬多多指教,谢谢。
7 回复
#2
深秋20152019-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
深秋20152019-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_luffy2019-11-20 17:50
因为当除号两端皆为整数时,编译系统将其默认为整除,于是乎1/5=0.2,int(0.2)==0!!!

所以应将1或5中任一一数改为1.0或5.0
double b=1.0/5
#8
testpilot2019-11-27 17:24
1.0和1区别还是挺大的
1