double加法精确度问题
#include <iostream.h>
void main()
{
cout < <165987.623+1100000 < <endl;
}
输出结果为:1.26599e+006
我想得到1265987.623这样不用科学计数法表示的精确结果(不是要6个有效数字,而是要全部数字),怎么实现?
是要重写运算符,还是vc++提供有函数实现,或者有其他方法实现?
[解决办法]
#include <iostream>
using namespace std;
void main()
{
cout < <fixed < <165987.623+1100000 < <endl;
}
如果要3位小数:
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
cout < <fixed < <setprecision(3) < <165987.623+1100000 < <endl;
}
[解决办法]
改#include <fstream.h> 为#include <fstream>