将两个整数除以产生一个浮点数结果

可能的复制品:
为什么我不能从两个整数除以 返回一个双精度数

我的 C + + 程序正在截断整数除法的输出,即使我尝试将输出放入一个浮点数中。如何防止这种情况发生,同时保持这些变量(a & b)作为整数?

user@box:~/c/precision$ cat precision.cpp
#include <iostream>
#include <iomanip>
using namespace std;


int main()
{
int a = 10, b = 3;
float ans = (a/b);
cout<<fixed<<setprecision(3);
cout << (a/b) << endl;
cout << ans << endl;
return 0;
}


user@box:~/c/precision$ g++ -o precision precision.cpp
user@box:~/c/precision$ ./precision
3
3.000
246609 次浏览

Cast the operands to floats:

float ans = (float)a / (float)b;