Ist eine Minute schon vorbei ???
-
Danke, hab das problem schon selber gelöst. Doch er rechnet die beiden Zahlen immernoch nicht zusammen ! Er gibt jetzt nur eine 0 aus ...
-
Hast du schon im debugger geschaut, wie der Inhalt der beiden Variablen aussieht?
Was liefert atoi zurück?
Teste mal so
int v1 = atoi(m_calc); int v2 = atoi(m_mon); calc2.Format(_T("%d"), v1 + v2);
-
Ist ein INT also
calc2.Format(_T("%i"), v1 + v2);Wenn etwas falschesa rauskommt solltest du mal schauen was in den CStrings drinsteht.
Dieser Code ist jedenfalls so richtig.
-
Also, es hat immernoch nicht geklappt. Ich habe m_mon und m_calc überprüft.
In m_mon und m_calc sind die richtigen Zahlen enthalten. Aber merkwürdig ist, dass in atoi(m_calc) und atoi(m_mon) nur jeweils eine 0 entahlten ist ! Egal wie ich es schreibe, ob Format oder nicht, ob "%d" oder "%i", es steht immer nur eine 0 in beide Variablen ! Und wenn ich es wie am Anfang schreibe :
m_mon + m_calc dann rechnet er die beiden Zahlen, die in den Variablen enthalten sind, nicht zusammen, sondern er schreibt dann 1,20 1,30 anstatt 2,50 ... Könnte es daran liegen, dass m_mon eine Edit-Box und m_calc ein Static-Text ist ??? An irgendetwas muss es ja liegen...
-
Also, es hat immernoch nicht geklappt. Ich habe m_mon und m_calc überprüft.
In m_mon und m_calc sind die richtigen Zahlen enthalten. Aber merkwürdig ist, dass in atoi(m_calc) und atoi(m_mon) nur jeweils eine 0 entahlten ist ! Egal wie ich es schreibe, ob Format oder nicht, ob "%d" oder "%i", es steht immer nur eine 0 in beide Variablen ! Und wenn ich es wie am Anfang schreibe :
m_mon + m_calc dann rechnet er die beiden Zahlen, die in den Variablen enthalten sind, nicht zusammen, sondern er schreibt dann 1,20 1,30 anstatt 2,50 ... Könnte es daran liegen, dass m_mon eine Edit-Box und m_calc ein Static-Text ist ??? Oder liegt es daran, dass ich Zahlen mit Kommatas verwende ??? An irgendetwas muss es ja liegen...
-
Es scheint das du Fließkommazahlen in deinen strings hast!
Dann geht das natürlich nicht. Benutze stattdessen folgendescalc2.Format(_T("%.2f"), atof(m_calc) + atof(m_mon));atof = ascii to float
%.2f = float format mit 2 Nachkommstallen
-
Wie soll ich das denn nun schreiben ??? CString`s addiert er nicht...Und mit dem ClassWizard kann ich keine int`s (etc.) erzeugen nur CString`s...
Ntürlich geht das!! Ist das ein Steuerelement?(Wo du m_calc einliest?)
-
Jetzt gibt er als Ergebnis 0,00 aus...
-
Zeig mal den ganzen Sourcecode und sag und genau was vor dem atoi in der Variable steht.
Der Code funktioniert so wenn du auch eine Zahl in den CStrings hast.
Bei INT eine INT Zahl oder bei double eine Fließkommazahl.Eine Fließkommazahl braucht aber einen Punkt: 12.23 und nicht 12,23
-
Stimmt, es lag daran, dass in m_mon und m_calc eine Zahl mit einem Komma und keinen Punkt enthalten war ! Sorry und danke für alles !!! Jetzt funtzt es
