我无法显示cout
显示小数(使用eclipse c ++和mingw)
#include <iostream>
using namespace std;
int main() {
int a = 55, b = 60, c = 70;
double avgResult;
avgResult = ((a + b + c) / 3);
cout << avgResult; //should display 61.666666
return 0;
}
我的输出是61,当我预计它是61.666666。
我可以使用
显示小数 cout << std::fixed << std::setprecision(2) << avrResult;
但我认为除非我想要一个特定的小数精度,否则我不需要这样做。
如果我做的话
double value = 12.345;
cout << value;
它显示正确,因此它让我相信上述问题与我在计算int
double avgResult
值有关
btw我是c ++的新手,我刚刚开始学习
答案 0 :(得分:10)
((a + b + c) / 3)
- 具有int
类型。将其更改为((a + b + c) / 3.0)
以获取double
答案 1 :(得分:1)
您计算(a + b + c)/ 3,然后将其存储在avgResult中。 avgResult是double,但是a + b + c是int,3是int,所以除法的结果是int。所以你最终在你的double变量中存储一个int。
获得双重结果的另一种方法,除了已经提到的一个:
avgResult = a + b + c;
avgResult /= 3;