我是C ++的新手,我尝试了这个简单的代码:
#include<iostream>
#include<math.h>
using namespace std;
int main(){
double a;
a=1/6;
cout<<a;
}
但结果是0.据我所知,double应该与实数一致,所以结果不应该是1/6或0.1666666?谢谢!
答案 0 :(得分:5)
在表达式1 / 6
中,两个数字都是整数。这意味着该除法将执行整数除法,从而得到0
。要进行double
除法,一个数字必须是双数:例如1.0 / 6
。
答案 1 :(得分:2)
整数文字1
和6
的类型为int
。因此在表达式中
1/6
使用整数运算,结果等于0.
使用至少一个操作数作为浮动文字。例如
a = 1.0/6;
或
a = 1/6.0;
或
a = 1.0/6.0;