#include <iostream>
#include <string>
#include <cassert>
#include <sstream>
using namespace std;
string DoubleToString(const double value, unsigned int precision)
{
std::ostringstream out;
if (precision > 0)
out.precision(precision);
out << value;
return out.str();
}
int main()
{
cout << DoubleToString(0., 12) << endl;
cout << DoubleToString(0.0, 12) << endl;
cout << DoubleToString(.0, 12) << endl;
cout << DoubleToString(1.0, 12) << endl;
cout << DoubleToString(11234, 12) << endl;
cout << DoubleToString(0.12345, 12) << endl;
cout << DoubleToString(0.12345678, 12) << endl;
cout << DoubleToString(0.12345678, 9) << endl;
cout << DoubleToString(0.12345678, 8) << endl;
cout << DoubleToString(0.12345678, 6) << endl;
return 0;
}
输出:
0
0
0
1
11234
0.12345
0.12345678
0.12345678
0.12345678
0.123457