我编写了以下简单的cpp程序:
#include <iostream>
#include <string>
#include <vector>
#include "other_imported.hpp"
#include "imported.hpp"
using namespace std;
#define MAX_LINE_LENGTH 999
using namespace std;
int main(int argc, char const *argv[])
{
cout << "here";
pair<double, double> p(321979, 819366);
cout << "total" << (p.first + p.second) << "\taverage: " << (p.first + p.second) / 2.0;
}
,当我运行它时,结果是: 总计1.14134e + 06平均:570672
我的问题如下: 尽管应该允许使用双精度数进行更精确的计算,但是对于如此小的数字,结果已经四舍五入了。为什么是这样?