如何制作双倍总是三个小数点? C ++

时间:2014-02-16 07:22:45

标签: c++

我正在编写一个程序,它接受用户输入并获得它的平均值。我需要平均值总是有三个小数点。 漂浮不起作用。 一些在线教程建议使用setprecision()并修复。那是行不通的,因为我不知道这个数字会有多长。

您是否建议将数字转换为字符串,获取长度,然后将其转换为double并使用:setprecision(string.length + 3)

由于

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我建议在计算过程中使用double的全精度,然后用三位小数显示最终结果。

答案 2 :(得分:1)

试试这个:

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    float ex[] = { 0.12345, 1.2345, 12.345};
    cout << setprecision(3) << fixed;

    for(int i = 0; i < 3; ++i) 
        cout << ex[i] << endl;

    return 0;
}

给出以下输出:

0.123
1.235
12.345

答案 3 :(得分:0)

#include <iostream>
#include <iomanip>  // header file for setprecision()
using namespace std;

int main()
{
   double input[4] = {1.000 , 2.0000 , 3.00 , 5.235 };
   double answer = 0 , sum = 0 ;
   int count = 0; 

    for(int i = 0; i < 3; ++i)
    {
           sum+=input[i];
           count++;
    }

    answer = sum/count;

    cout.precision(3);
    cout << answer << endl;

   return 0;
}