Zum Inhalt springen

(C#)Hilfe beim Taschenrechner(Windows Forms)


Empfohlene Beiträge

Geschrieben

Moin

Ich habe im Forum schon die SuFu benutzt, aber ich habe nichts gefunden bzw. wusste nicht nach was ich suchen muss.

Meine Probleme:

------------------------------

Ich möchte, dass ich den letzten angegeben Buchstaben aus einer Textbox löschen kann. Also 1234 -> 123

Mein Versuch:

display = textBox1


private void back_Click(object sender, EventArgs e)

        {

            display.Text = display.Text.Length -1;

        }

------------------------------ Ähnliches Problem: Ich möchte ein +/- in der ersten Stelle der Textbox hinzufügen, ohne das erste Zeichen zu löschen. Das hier war am Ende ein verzweiflungsversuch...
private void plusminus_Click(object sender, EventArgs e)

        {

            if (display.Text.Length(1) == "+")

            {

                pm = display.Text;

                display.Text = "-";

                display.Text += pm;

            }

            else

            {

                pm = display.Text;

                display.Text = "+";

                display.Text += pm;

            }

        }

Wäre gut wenn ihr mir helfen könnt. :)

MfG

Fire

Geschrieben

Hallo

ich bin zwar nicht der geborene C# Programmierer aber habs trotzdem versucht :)

1. Problem:


display.Text = display.Text.Substring(0, display.Text.Length - 1);

2. Problem:

display.Text = string.Concat("+",  display.Text);

Gruß Hans-Jörg

Geschrieben

Servus

Danke für deine Antwort.

Problem 1 ist gefixed.

-----

Bei Problem 2 wird zwar ein Plus (bzw. Minus) an erster Stelle hinzugefügt, aber ich wollte es eigentlich so, dass wenn da ein Plus ist das es durch ein Minus ersetzt wird und andersrum. (Wie beim Windows-Taschenrechner)

MfG

Fire

Geschrieben
Bei Problem 2 wird zwar ein Plus (bzw. Minus) an erster Stelle hinzugefügt, aber ich wollte es eigentlich so, dass wenn da ein Plus ist das es durch ein Minus ersetzt wird und andersrum. (Wie beim Windows-Taschenrechner)

Na das sollte jetzt aber doch kein Problem mehr sein.

Kleine Gedankenstütze:

WENN erstes Zeichen = "+" ODER "-"

DANN

-->WENN erstes Zeichen ein "+"

-->DANN concat("-", Substring (1, ...))

-->SONST concat("+", Substring (1, ...))

SONST Concat("+", display.Text)

In code kannst es bestimmt selbst "umwandeln", sollst es ja lernen

Geschrieben

eine andere Möglichkeit, wie man das anstellen könnte, wäre:

man wandelt die Zeichenkette in eine Zahl um (beispielsweise mit Convert.ToInt32(String))

multipliziert diese mit -1

und wandelt die Zahl wieder in eine Zeichenkette um

Vorteil:

man hat nicht dieses Konstrukt der Fallunterscheidung und (Schätzungsweise) weniger Code

Nachteil:

die Eingabe muss sich in eine Zahl umwandeln lassen

-> es dürfen nur Ziffern vorhanden sein

-> es dürfen ggf. keine führenden Nullen vorhanden sein

-> es kann eventuell bei Dezimaltrennzeichen (ist das der richtige Begriff?) zu Problemen kommen

die Eingabe muss mit dem gewählten Datentyp kompatibel sein

- Ganzzahlen

-> keine Kommazahlen

-> eingeschränkter Wertebereich (beispielsweise Int32: -2^31 bis (2^31)-1

- Fließkommazahlen

-> ungenau

je nachdem, was der Taschenrechner später alles können soll, musst du abwägen, was du verwendest

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...