Dividing two integers to produce a float result [duplicate]

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-26 07:38:18

问题


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<<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

回答1:


Cast the operands to floats:

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


来源:https://stackoverflow.com/questions/12447325/dividing-two-integers-to-produce-a-float-result

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!