<分区>
Possible Duplicate:
C++ float precision question
我遇到了一个问题,即使用 std::accumulate 确定三种方法中最精确的方法来计算 vector 元素之和, vector 元素之和只能是正数。
1)
double sum(vector<float> &v)
{
return accumulate(v.begin(), v.end(), 0.0);
}
2)
double sum(vector<float> &v)
{
sort(v.begin(), v.end());
return accumulate(v.begin(), v.end(), 0.0);
}
3)
double sum(vector<float> &v)
{
sort(v.begin(), v.end(), greater<float>());
return accumulate(v.begin(), v.end(), 0.0);
}
这是一种求职面试题,所以我得到了这三种计算总和的方法。我在网上做了很多搜索,但无法弄清楚其中的区别。你们能帮我理解一下吗?