我在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);
答案 0 :(得分:2)
to_string
(和to_wstring
)不允许您控制精度(并且您的输出是精度问题)。
要控制精确度,您应该使用snprintf
或std::ostringstream
来首先准备字符串,然后使用MessageBox
显示它。
答案 1 :(得分:0)
std::wostringstream ToMsgBox;
ToMsgBox << result;
std::wstring ans = ToMsgBox.str();
或快速而肮脏:
std::wstring ans = to_wstring(result);
ans.resize(test.find_first_of('.') + 2);