アプリ版:「スタンプのみでお礼する」機能のリリースについて

浮動小数点floatからStrへの変換をgcvt関数で行なうときに、値が小さいと文字列0.00005が欲しいのに5e-05になってしまいます。
どうすればよいですか?教えてください。

A 回答 (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」という名前の関数を探すかしてみて下さい。(多分こんな名前になっていると思う。)
    • good
    • 0
この回答へのお礼

回答ありがとうございましたm(__)m
なんとかかんとか解決することが出来ました。ありがとうございます。

お礼日時:2001/12/18 19:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!