Beide meiner Operanden in TCHAR
Typ und ich konvertieren sie in double
, weil meine Operanden Ganzzahlen oder doppelt sein können. Wenn ich 1.5 + 1
mache, habe ich 2.500000
. Aber ich will 2.5
. Ich weiß, wie man ein Problem mit printf
löst, aber ich muss mein Ergebnis MessageBox
verwenden. Wie kann ich es lösen?Format Dezimal in float
double result = _wtof(firstOperand) + _wtof(secondOperand);
wstring ans = to_wstring(result);
MessageBox(NULL, ans.c_str(), L"Result", MB_OK);
Oh, thank you so much! – rel1x
Wenn Ihre Operanden TCHAR sind, dann möchten Sie wahrscheinlich '_sntprintf_s', damit Ihr Code für ANSI- oder Wide-Modus kompilieren kann. Das "t" ist für "TCHAR". Das Suffix '_s steht für" safe ", was bedeutet, dass die Funktion die Größe des Puffers als Parameter annimmt, um einen Teil der Überlaufprüfung vom Aufrufer zu entfernen. (Es ist nicht vollkommen sicher, aber es ist sicherer.) Es ist möglich, aber schwieriger, die Stream-Lösung flexibel genug zu machen, um 'TCHAR's zu handhaben. –