非科学的な(つまり、仮数/指数/ 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の範囲をサポートしたいと思います。