10

double を C++ 文字列に変換しようとすると、いくつかの問題が発生します。これが私のコードです

std::string doubleToString(double val)
{
    std::ostringstream out;
    out << val;
    return out.str();
}

私が抱えている問題は、double が「10000000」として渡されている場合です。返される文字列値は 1e+007 です

文字列値を「10000000」として取得するにはどうすればよいですか

4

3 に答える 3

14
#include <iomanip>
using namespace std;
// ...
out << fixed << val;
// ...

setprecision10 進数の桁数を設定するために使用することも検討できます。

out << fixed << setprecision(2) << val;
于 2009-05-14T16:10:11.983 に答える
8
#include <iomanip>

std::string doubleToString(double val)
{
   std::ostringstream out;
   out << std::fixed << val;
   return out.str();
}
于 2009-05-14T16:12:39.840 に答える
2

次のような STL IO マニピュレータを使用して、最小幅を設定し、char を埋めることもできます。

out. width( 9 );
out.fill( ' ' );
于 2009-05-14T17:58:52.753 に答える