无法让cout显示小数c ++

时间:2013-06-13 15:51:18

标签: c++

我无法显示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 ++的新手,我刚刚开始学习

2 个答案:

答案 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;