#include <iostream>
#include <sstream>
using namespace std;
std::string DoubleToString(const double value, unsigned int precisionAfterPoint)
{
ostringstream out;
// 清除默认精度
out.precision(numeric_limits<double>::digits10);
out << value;
string res = move(out.str());
auto pos = res.find('.');
if (pos == string::npos)
return res;
auto splitLen = pos + 1 + precisionAfterPoint;
if (res.size() <= splitLen)
return res;
return res.substr(0, splitLen);
}
int main()
{
double num1 = 1.234567;
double num2 = 1.234567;
cout << DoubleToString(num1*num2,15) <<endl;
}