数学計算用の C ソース コードを生成する C++ で書かれたプログラムがあります。生成されたコードで定数が非常に多くのスペースを占めることに気付き、よりコンパクトな表現を探しています。
定数を生成するために、私は現在以下を使用しています:
double v = ...
cfile << std::scientific << std::setprecision(std::numeric_limits<double>::digits10 + 1) << v;
これはロスレス表現であると確信していますが、非常に肥大化しています。たとえば、0 と 1 は 0.000000000000000e+00 と 1.0000000000000000e+00 のように表されます。そして「0」。または「1.」同じくらい多くの情報を運びます。
定数をファイルに出力する方法はありますか? 人間の読者にとって見栄えがする必要はありません。プレーンな C コードで存在する場合はコンパイルするだけです (C99 の場合は、有効な C++ であることが望ましいです)。移植可能であれば、16 進数でも問題ありません。
編集:std::fixed
コード スニペットで削除されました。