- ベストアンサー
浮動小数点から文字列の変換の時に
浮動小数点floatからStrへの変換をgcvt関数で行なうときに、値が小さいと文字列0.00005が欲しいのに5e-05になってしまいます。 どうすればよいですか?教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
私はgcvtという関数を知りませんが、名前と結果から想像するに、 sprintf( str, "%1.g", f ); ということをしているのではないでしょうか。 (f に 0.00005 を代入して実行すると、str は "5e-05" になります。) printf 系の関数で変換文字に "g" または "G" を指定すると、 ・指数部が -5 以下か、有効精度以上のときは、e または E 変換を行い、 ・それ以外のときは、f 変換を行います。 ※ f 変換は「0.00005」のような小数形式に、g/G 変換は「5e-05(または5E-05)」のような指数形式になります。 素直に f 指定の sprintf 関数を使うか、お手持ちのライブラリから「fcvt」という名前の関数を探すかしてみて下さい。(多分こんな名前になっていると思う。)
お礼
回答ありがとうございましたm(__)m なんとかかんとか解決することが出来ました。ありがとうございます。