非科学的な(つまり、仮数/指数/ Eのない)文字列を使用して10進数を変換する必要があります。私のコードは次のようになります:
/*!
\brief Converts a <em>XML Schema Decimal</em>
*/
char *ToDecimal(double val) const
{
const size_t nMax = 200;
char *doubleStr = new char[nMax];
sprintf(doubleStr, "%1.6f", val);
return doubleStr;
}
問題は、入力valがその場合1、関数が戻る1.000000が、の出力を期待していたことです1。また、コードをに変更するsprintf(doubleStr, "%1.0f", val);と正しく出力されますが1、入力valをに変更する0.000005と出力は0になり、出力が。になることを期待していました0.000005。したがって、基本的には、すべての出力をできるだけ短くし、不要なものをすべて削除する必要があり0ます。これはで可能sprintfですか?この機能で3.4E+/-38の範囲をサポートしたいと思います。