【问题标题】:Can't get cout to display decimals c++ [duplicate]无法让cout显示小数c ++ [重复]
【发布时间】:2013-06-13 15:51:17
【问题描述】:

我无法让 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 &lt;&lt; std::fixed &lt;&lt; std::setprecision(2) &lt;&lt; avrResult;

但我认为我不需要这样做,除非我想要特定的小数精度。

如果我这样做

double value = 12.345;
cout << value;

它显示正确,所以它让我相信上述问题与我在计算 double avgResult 时使用 int 值有关

顺便说一句,我是 C++ 新手,刚刚开始学习

【问题讨论】:

  • 啊,整数数学与双精度数学的问题。我们都在同一时间做了同样的事情!

标签: c++


【解决方案1】:

((a + b + c) / 3) - 具有int 类型。改成((a + b + c) / 3.0)得到double

【讨论】:

    【解决方案2】:

    您计算 (a + b + c) / 3,然后将其存储在 avgResult 中。 avgResult是一个double,但是a + b + c是int,3是int,所以除法的结果是int。所以你最终将一个 int 存储在你的 double 变量中。

    除了已经提到的之外,另一种获得双重结果的方法:

    avgResult = a + b + c;
    avgResult /= 3;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      相关资源
      最近更新 更多