Entwickler-Ecke
Basistechnologien - Convertierung von Double in String
blutengel - Fr 05.03.10 19:42
Titel: Convertierung von Double in String
Hallo!
Ich habe da ein kleines Problem. Ich will einen Wert aus einer Textbox mit einem anderen Wert aus einer anderen Textbox addieren. Jetzt muss ich ja erst den Inhalt der Textbox in eine Double Variable convertieren, um damit rechnen zu können.Und nach der Berechnung möchte ich das Ergebniss durch drücken des Buttons Berechnen in einer weiteren Textbox ausgeben. Dazu convertieren ich die Double Variable wieder in einen String. Und da liegt mein Problem.Nach dem compilieren kommt das:
Quelltext
1:
| Fehler1 Eine implizite Konvertierung vom Typ "double" in "string" ist nicht möglich. |
Hier mal der Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| private void btn_berechnen_Click(object sender, EventArgs e) { double rv; double i; double uges; double ud; double ur; string str_rv;
uges=Convert.ToDouble(tb_uges.Text); i=Convert.ToDouble(tb_i.Text); ud=Convert.ToDouble(tb_ud);
rv = uges + i; str_rv = Convert.ToString(rv);
tb_rv.Text = str_rv;
} |
Was mache ich da Falsch? Oder bin ich auch einem ganz falschen Weg?
MFG
blutengel
Moderiert von
Christian S.: Topic aus WinForms verschoben am Fr 05.03.2010 um 19:45
Christian S. - Fr 05.03.10 19:48
Hallo!
Prinzipiell bist Du da schon auf dem richtigen Weg.
Zum einen muss es aber in Zeile 14 wohl
tb_ud.Text heißen, zum anderen ist die Verwendung von
Convert in diesem Falle unschön (das ist Geschmackssache, aber meiner Erfahrung nach, sehen es die meisten so). Schöner geht es mit den Funktionen
Double.Parse und
Double.ToString, wobei erstere eine Klassenmethode ist, letzteres eine Instanzmethode.
Beispiel:
C#-Quelltext
1: 2:
| double uges = Double.Parse(tb_uges.Text); tb_uges.Text = uges.ToString; |
Sehr sinnvoll ist auch die Verwendung von
Double.TryParse, welches Dir sagt, wenn eine Konvertierung fehlgeschlagen ist, weil der String gar keine Zahl war:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| double uges; if (!Double.TryParse(tb_uges.Text, out uges)) { MessageBox.Show('Bitte geben Sie eine Zahl ein!'); return; } |
Was den Fehler angeht, sehe ich den auf Anhieb nicht. Vielleicht erledigt der sich aber schon, wenn Du obige Korrektur (also in Zeile 14) vornimmst.
Grüße
Christian
blutengel - Fr 05.03.10 20:44
Wunderbar Vielen Dank jetzt läuft es.Noch eine Frage zu deinem Beispiel zur abfrage ob eine Zahl oder ein Zeichen eingegeben wurde. Ich wollte nach dem ausgeben der MessageBox mit tb_uges.Clear(); die Textbox löschen.Jetzt kommt aber die Meldung doppelt. Was ist das?
Christian S. - Fr 05.03.10 20:45
:nixweiss: Ohne Deinen Quelltext zu kennen, kann ich da unmöglich drauf antworten.
blutengel - Fr 05.03.10 21:00
Sorry. Habe deine Code so übernommen.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| double uges; if (!Double.TryParse(tb_uges.Text, out uges)) { MessageBox.Show("Bitte geben Sie eine Zahl ein!"); tb_uges.Clear(); return; } |
habe nur das tb_uges.Clear(); noch hinzugefügt.
MFG
blutengel
Christian S. - Fr 05.03.10 21:02
Wird der Code zufällig im Change-Ereignis von tb_uges ausgeführt? Dann würde Clear das ja erneut auslösen.
blutengel - Fr 05.03.10 21:07
Ja genau da hast du Recht.Jetzt hab ich es Danke.
MFG
blutengel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!