C ++部门

时间:2016-03-28 16:22:24

标签: c++

我是C ++的新手,我尝试了这个简单的代码:

#include<iostream>
#include<math.h>
using namespace std;

int main(){
    double a;
    a=1/6;
    cout<<a;
}

但结果是0.据我所知,double应该与实数一致,所以结果不应该是1/6或0.1666666?谢谢!

2 个答案:

答案 0 :(得分:5)

在表达式1 / 6中,两个数字都是整数。这意味着该除法将执行整数除法,从而得到0。要进行double除法,一个数字必须是双数:例如1.0 / 6

答案 1 :(得分:2)

整数文字16的类型为int。因此在表达式中

1/6

使用整数运算,结果等于0.

使用至少一个操作数作为浮动文字。例如

a = 1.0/6;

a = 1/6.0;

a = 1.0/6.0;