Entwickler-Ecke
WinForms - Übernahme von Zahlen aus einer Textbox
Izze - Fr 06.02.09 12:11
Titel: Übernahme von Zahlen aus einer Textbox
Hallo,
erstmal, ich bin ganz neu hier und habe direkt eine Frage.
Ich bin blutiger Anfänger und im Moment irgendwie betriebsblind.
Habe auch beim Suchen nichts gefunden und in meinen Büchern verstehe ich es nicht ganz.
Zur Zeit bastele ich an einem Weight Watchers Punkterechner für meine Frau.
Soweit so gut. Es gelingt mir aber nicht die Zahlenwerte aus den Textboxen zu übernehmen und berechnen zu lassen.
Folgender Code liegt zugrunde:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| private void buttonBerechnen100G_Click(object sender, EventArgs e) { string Kcal100 = textBoxKcal100.Text; string Fett100 = textBoxFett100.Text; string Portionsgroesse100 = textBoxPortionsgroesse100.Text;
int a,c; double b;
a = Convert.ToInt32(Kcal100); b = Convert.ToDouble(Fett100); c = Convert.ToInt32(Portionsgroesse100); textBoxPunkte100.Text = ((b * 0.11) + (a * 0.0165)) * c; } |
Und die Fehlermeldung dazu ist:
Eine implizite Konvertierung vom Typ "double" in "string" ist nicht möglich.
Ich vermute, es hat wohl etwas damit zu tun das ich den Inhalt der Textbox in Zahlenwerte konvertieren muss.
Aber daran scheitert es wohl, sorry.
Danke schonmal für die Hilfe!
bakachan - Fr 06.02.09 12:17
Die Fehlermeldung sagt doch eigentlich alles:
dein double-wert (((b * 0.11) + (a * 0.0165)) * c) kann nicht implizit in string gewandelt werden also musst du das ganze explizit machen:
.ToString()
Izze - Fr 06.02.09 12:26
Danke für die flotte Antwort.
C#-Quelltext
1:
| textBoxPunkte100.Text = (((b * 0.11) + (a * 0.0165)) * c).ToString(); |
Scheint geklappt zu haben.
Fehlt nur die Kommasetzung.
JüTho - Fr 06.02.09 13:01
Izze hat folgendes geschrieben : |
Fehlt nur die Kommasetzung. |
Für diese und viele weitere Fragen gibt es die ausführliche
SDK-Doku/MSDN mit vielen Hinweisen und Beispielen. Bei
Double.ToString gibt es vier Varianten (Überladungen), davon drei mit Vorgabe des Formats.
Übrigens sind die Convert-Methoden oft nicht so günstig (ich sage sogar "meistens", aber das ist Ansichtssache). Was passiert, wenn zwei Kommata oder ein Buchstabe eingegeben werden? Benutze lieber
Parse, ParseExact oder noch besser
TryParse, TryParseExact - Erläuterungen auch dazu siehe
SDK-Doku/MSDN. Alternativ kannst Du auch
MaskedTextBox oder
NumericUpDown verwenden.
Gruß Jürgen
PS.
Beschränke künftig Deinen Code-Auszug bitte auf die relevanten Teile. Die ganzen leeren EventHandler, die für Deine künftige Planung vorbereitet sind, sind für das aktuelle Problem überflüssig. Danke!
Izze - Fr 06.02.09 13:14
Danke für die Hinweise!
Ich habs oben auch geändert. ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!