这个问题已经在这里有了答案:




已关闭8年。






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

最佳答案

将操作数强制转换为浮点数:

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

关于c++ - 将两个整数相除以产生浮点结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12447325/

10-12 15:06