文字列を作成して、浮動小数点数の後に小数点または小数点以下の桁数を整数にするように書式を設定しますが、数値が大きいほど科学的表記法に切り替えることはできません。Cで%gの文字列形式
私は:
float myFloat= 15.6f;
float myInt = 5.0f;
float myLarge = 7000000.0f;
sprintf(out, "my float is %g", myFloat);
sprintf(out, "my int is %g", myInt);
sprintf(out, "my large is %g", myLarge);
私のようなものを得る:私はすべての単一フォーマットの15.6を与える文字列、5、および700000
編集をしたい
my float is 15.6 my int is 5 my large is 7e+07f
を原因のコメントはフォーマットを行わない:
私が思ったことだ。フォーマット文字列が長い形式の文字列に埋め込まれているので、ラッパーはかなり不便です。
sprintf(buf, "%d %g", myInt, myFloat);
どのようにラッピングしますか?
sprintf(buf, "%d %g", myInt, Wrapper(myFloat));??
ラッパーは何を返す必要がありますか?または悪化:
sprintf(buf, "%d %s", myInt, Wrapper(myFloat));??
まで表示する%グラムと%0.10グラムを交換してください。* fの場合は、次のようにします。 sprintf(buf、 "%d%。* f"、myint、getPlaces(myFloat)、myFloat); フォーマット文字列を生成するためのラッパーは必要ありません。 –