jwbensley jwbensley - 1 year ago 88
C++ Question

Dividing two integers to produce a float result

Possible Duplicate:

Why can't I return a double from two ints being divided

My C++ program is truncating the output of my integer devision even when I try and place the output into a float. How can I prevent this whilst keeping those to variables (a & b) as integers?

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 << (a/b) << endl;
cout << ans << endl;
return 0;

user@box:~/c/precision$ g++ -o precision precision.cpp
user@box:~/c/precision$ ./precision

Answer Source

Cast the operands to floats:

float ans = (float)a / (float)b;
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download