私のオペランドは両方ともTCHAR
タイプで、私はオペランドが整数または倍数になる可能性があるので、double
に変換します。私がするとき1.5 + 1
私は2.500000
を持っている。しかし、私は2.5
がほしいです。私はprintf
を使って問題を解決する方法を知っていますが、私の結果MessageBox
を使う必要があります。どうすれば解決できますか?浮動小数点数の書式
double result = _wtof(firstOperand) + _wtof(secondOperand);
wstring ans = to_wstring(result);
MessageBox(NULL, ans.c_str(), L"Result", MB_OK);
ああ、ありがとうございました! – rel1x
オペランドがTCHARの場合は、おそらく '_sntprintf_s'が必要なので、コードをANSIモードまたはワイドモード用にコンパイルすることができます。 't'は' TCHAR'です。 '_s'接尾辞は" safe "を表します。これは、呼び出し元からのオーバーフローチェックの一部をオフロードするために、関数がバッファのサイズをパラメータとして使用することを意味します。 (これは完全には安全ではありませんが、より安全です)ストリームソリューションを「TCHAR」を処理するのに十分柔軟にすることは可能ですが、難しくなります。 –