2016-10-18 114 views
0

我想获得a/b的值,但对于a/b,我总是得到'0'。如何计算C++中的a/b?

为什么我得到a/b = 0?

#include <iostream> 
using namespace std; 

int main() 
{ 
    int a,b; 
    cout << "Give a and b" << endl; 
    cin >> a >> b; 
    double q=a/b; 
    cout << "a/b=" << q; 
    return 0; 
} 
+0

你使用了什么输入值? –

+2

如果我不得不猜测,你会遇到整数划分。 – Laurel

+0

@RemyLebeau我正在使用1和2 – user40

回答

2

您正在使用整数算术,所以除法结果将是一个整数。在分配给您的q变量之前,浮点值介于0和1之间时,将被解释为整数时截断为0。因此,要么:

  1. 改变你的ab变量double,而不是int

  2. 在分裂过程中强制转换a和/或bdouble

无论采用哪种方法,您都将执行浮点除法而不是整数除法,因此结果将是浮点值。

1

可以做double q=double(a)/b;来代替。