int main(int argc, char *argv[])
{
std::deque<float> queue;
queue.push_back(1.23456789);
queue.push_back(2.3456789);
queue.push_back(3.456789);
queue.push_back(4.56789);
queue.push_back(5.6789);
std::ofstream file ("out.txt");
if (file.is_open())
{
file.precision(12);
std::copy(queue.begin(), queue.end(), std::ostream_iterator<float>(file, ","));
}
file.close();
return 0;
}
我正在运行上面的代码,当我打开 out.txt 时,我得到了以下内容:
1.23456788063;2.3456788063;3.45678901672;4.56789016724;5.67889976501;
我在期待:
1.23456789;2.3456789;3.456789;4.56789;5.6789;
或至少:
1.23456789000;2.3456789000;3.45678900000;4.56789000000;5.67890000000;
我在这里做错了什么?
[编辑]
好吧,这是浮点数的本质,我接受它,我可以忍受它。但是,如果我想得到预期的结果,我该怎么办?什么是最好的解决方法?
[编辑]