大家好,所以我的c ++代码没有正确显示我的小数值。这就是我所拥有的
int sum = 0;
for (vector<int>::iterator it = vint.begin(); it != vint.end(); it++)
{
sum += *it;
}
float average = (sum / 10000);
cout.precision(5);
cout.setf(std::ios::fixed);
cout << "Average: " << average << endl;
总和是我的代码的随机原因但通常在506782左右等等。 但我的输出是
输出: 50.0000
请帮助
答案 0 :(得分:1)
问题在于您正在执行整数除法(sum
和10000
都是整数)。结果将始终是截断的整数(例如,5/2 == 2)。如果将常量10000
变为浮点常量(10000.0f
),则将执行浮点除法。这应该解决它:
int sum = 0;
for (vector<int>::iterator it = vint.begin(); it != vint.end(); it++) {
sum += *it;
}
float average = (sum / 10000.0f);
cout.precision(5);
cout.setf(std::ios::fixed);
cout << "Average: " << average << endl;
答案 1 :(得分:0)
你应该将总和投入浮动。当你执行sum / 10000时,结果是一个整数,其中十进制空格被截断。
int sum = 0;
for (vector<int>::iterator it = vint.begin(); it != vint.end(); it++)
{
sum += *it;
}
float average = ((float)sum / 10000);
cout.precision(5);
cout.setf(std::ios::fixed);
cout << "Average: " << average << endl;