【发布时间】:2012-09-16 13:39:31
【问题描述】:
可能重复:
Why can't I return a double from two ints being divided
即使我尝试将输出放入浮点数中,我的 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/b); (或 static_cast 取悦纯粹主义者)
-
是的,我的错误,我确实搜索过,但我没有找到那个帖子。这是一个骗局,我的错!
标签: c++ precision integer-division