Wie übergibst du denn den Betrag zum Ausdrucken?
Als const char* oder CString oder std::string?
Bei const char* nimm wsprintf mit %d.02d
Bei CString dasselbe mit Format und %.02d
Bei std::string entweder über string-streams mit setprecision oder über ein char-array als Vermittler.
double x = 12.3
char szBetrag[200];
wsprintf( szBetrag, "%d.%02d", (int)x, (int)( x * 100 ) % 100 );
(int)( x * 100 ) % 100 sieht etwas kryptisch aus, ist aber einfach erklärt:
* 100, weil du ja die letzten beiden Stellen willst.
Der Cast auf int bewirkt ein Abschneiden der Nachkommastellen.
% 100, damit nur die letzten beiden Stellen ausgegeben werden (der Rest einer Division durch 100).
Das %02d gibt die Nachkommastellen mit zwei Stellen aus, die vorne mit Nullen gefüllt werden.
Beispiel:
Ein 12.3 wird zu 1230 umgerechnet, die letzten beiden Stellen ergeben 30.
Ein 11.07 wird zu 1107 umgerechnet, die letzten beiden Stellen ergeben 07.