double型をCString型に変換するには?

解決


型変換  2007-11-02 16:59:23  No: 66726  IP: 192.*.*.*

はじめまして。
double型をCString型に変換する際に困っている事があります。

「1.20」と「1.25」を、Format("%1.2f", x)で型変換すると、
「1.20」と「1.25」となってしまいまうのですが、
「1.2」と「1.25」に変換するにはどうしたらよいのでしょうか?

宜しく御願いします。

編集 削除
Blue  2007-11-02 17:40:14  No: 66727  IP: 192.*.*.*

%g を指定してみるのはどうでしょうか?

編集 削除
型変換  2007-11-02 18:20:14  No: 66728  IP: 192.*.*.*

to Blueさん

ありがとうございました。
"%g"でうまくいきました。

すごく悩んでいたのに、こんなに簡単にできるんですね。
助かりました。本当にありがとう御座います。

編集 削除
yoh2  2007-11-02 23:43:58  No: 66729  IP: 192.*.*.*

細かいところですが。
%gでは、元の値をx.xxxxe±nnnという表記で表した時にnnnが5以上
なら、CString::Formatの結果が指数表記に変換されることに注意。

1000000.25 → 1e+6
1000000.2  → 1e+6
0.00000025 → 2e-7
0.0000002  → 2.5e-7

もちろん、そのような範囲の値を使わないなら問題ありません。

編集 削除
yoh2  2007-11-02 23:46:50  No: 66730  IP: 192.*.*.*

変換例を間違えました。

×
> 0.00000025 → 2e-7
> 0.0000002  → 2.5e-7


0.00000025 → 2.5e-7
0.0000002  → 2e-7

編集 削除