我有点困惑于这个问题:
int a = 5, b = 2;
double c = a / b;
cout << c;
输出:
2
为什么?
我可以通过以下方式传递:
double aa = a,
bb = b;
c = aa / bb;
输出:
2.5
帮助! :(
答案 0 :(得分:5)
在C ++语言中,两个整数值之间的任何算术运算都将返回一个int值。换句话说,整数除法是欧几里德除法。然后才将整数值转换为double。
如果你想要一个双重操作,你必须强制除法操作double值,或者通过将一个操作数强制转换为double,或者将它乘以1.0
这是一个双重常量:
double c = 1.0 * a / b;
或
double c = static_cast<double>(a) / b;
答案 1 :(得分:3)
你必须至少将其中一个注入一个双精度数:
double c = a/(double)b;