我正在编写一个程序,它接受用户输入并获得它的平均值。我需要平均值总是有三个小数点。 漂浮不起作用。 一些在线教程建议使用setprecision()并修复。那是行不通的,因为我不知道这个数字会有多长。
您是否建议将数字转换为字符串,获取长度,然后将其转换为double并使用:setprecision(string.length + 3)
由于
答案 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;
}