C# "," Button programmieren

Eragon333

Lt. Junior Grade
Registriert
Juni 2012
Beiträge
362
Hallo!

Ich habe eine Frage:

Ich bin blutiger Anfänger und habe nun einen Rechner programmiert. Dieser wird nur über Buttons gesteuert, also so wie der WindowsRechner.

Ich habe bereits ein - Button für negative Zahlen geschrieben (da war ich besonders stolz:rolleyes:).

Aber wie ich nun ein Komma Button schreiben soll ist mir ein Rätsel.
Ich hab 5 Labels, 1. für die erste Zahle ,2. für zweite Zahle, 3. Ergebnis, 4. für - Vorzeichen, 5. für den Operator

Würde mich über Hilfe sehr freuen!

PS: In meinem Lehrbuch steht leider nur die Methode mit Textfeldern drin :mad:
 
Ohne deinen Code zukennen ... was hindert dich daran das "," genauso wie die Zahlen zuimplementieren?
 
Das das Komma angezeigt wird ginge, aber ich weis nicht wie es funzt das die Zahl dann auch mit dem Komma rechnet.
 
Das Dezimaltrennzeichen ist nunmal ein Punkt. Rechne halt damit und ersetze den Punkt für die Ausgabe durch ein Komma.
 
mh...indem du deine zahlenwerte nicht als integer realisierst? *vermutung ins blaue*
 
entweder, indem du das nach dem Komma zuerst berechnest, den Überlauf davon auf das vor dem Komma aufrechnest.
Oder indem du die gesamte Zahl/String, als was auch immer das eingelesen wird, in eine Gleitkommazhal umwandelst?
Aber wie schon gesgat, ohne deinen Code, wird es schweres Raten eine genau Lösung zu geben.
 
Ich vermute mal du arbeitest noch an dem selben Taschenrechner von deinem letzten Thema, wenn man sich nun den Source code anschaut von dem Video (link zum source code war in der Beschreibung vom Youtube Video)

Video: http://www.youtube.com/watch?v=bK9WI1krbyU
Source Code: http://de.sourcepod.com/rrtxbo08-18608

Nun habe ich mir diesen "Code" angesehen und folgende Rechen Methode gefunden:

Code:
        private void enter_Click(object sender, EventArgs e)
        {

            if (rechenoperator.Text == "+")
            {
                ergebnis1.Text = (int.Parse(zahl1.Text) + int.Parse(zahl2.Text)).ToString();
            }

            if (rechenoperator.Text == "-")
            {
                ergebnis1.Text = (int.Parse(zahl1.Text) - int.Parse(zahl2.Text)).ToString();
            }

            if (rechenoperator.Text == "*")
            {
                ergebnis1.Text = (int.Parse(zahl1.Text) * int.Parse(zahl2.Text)).ToString();
            }

            if (rechenoperator.Text == "/")
            {
                ergebnis1.Text = (int.Parse(zahl1.Text) / int.Parse(zahl2.Text)).ToString();
            }
        }

Ausgehend von diesem wäre mein Vorschlag die statischen Methoden Parse von int, durch die Methode mit dem selben Namen von double/decimal/float zu ersetzten (zB int.Parse(zahl1.Text) --> double.Parse(zahl1.Text))
Denn int ist nur für Ganzzahlen und double/decimal/float für Fließkommazahlen, dann sollte es funktionieren.
 
Zurück
Oben