Geschrieben von Matze84 am 20.03.2013 um 12:35:
C# - Fehler beim konvertieren von string in Int32
Also ich habe versucht einen Euro-Dollar Umrechner zu programmieren, weil wir gerade C# haben, soll das natürlich auch in der Sprache passieren...
Ich habe mir ein Windowsforms gebaut.
Textbox1 enthält den "Umrechnugnskurs"
Textbox2 enthält den Euro Wert
Textbox3 den Dollar Wert.
Ich habe das so gemacht, das wenn man in T2 oder T3 was einträgt, das das andere Feld dann entsprechend gelöscht wird.
Dann frage ich ab welches Feld leer ist und rechne quasi mit dem andern...
Das geht vom Aufbau sicher einfacher, aber das ist nicht mein Problem....
Mein Problem ist, wenn ich:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
|
namespace Euro_Dollar_Umrechner
{
public partial class Form1 : Form
{
Double kurs;
Double euro;
Double dollar;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == String.Empty)
MessageBox.Show("Bitte geben Sie einen Umrechnungskurs ein.", "Fehler");
if (!(Double.TryParse(textBox1.Text, out kurs)))
MessageBox.Show("Sie haben keine Zahl eingegeben.", "Fehler");
if (textBox2.Text != String.Empty)
{
euro = Convert.ToDouble(textBox3.Text);
euro = (dollar/kurs);
}
else if (textBox3.Text != String.Empty)
{
dollar = Convert.ToDouble(textBox2.Text);
dollar = (euro * kurs);
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
kurs = Convert.ToDouble(textBox1.Text);
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
textBox3.Text = String.Empty;
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
textBox2.Text = String.Empty;
}
}
}
|
|
kompiliere und dann Werte eintrage, das er in folgender Zeile meckert.
Zeile 24:
euro = Convert.ToDouble(textBox3.Text);
Geschrieben von eulerscheZahl am 20.03.2013 um 14:03:
Es ist ein logischer Fehler: es ist immer eine der zwei Textboxen leer - und du willst immer genau die leere in ein double umwandeln, das kann nicht funktionieren.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
|
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == String.Empty)
MessageBox.Show("Bitte geben Sie einen Umrechnungskurs ein.", "Fehler");
if (!(Double.TryParse(textBox1.Text, out kurs)))
MessageBox.Show("Sie haben keine Zahl eingegeben.", "Fehler");
if (textBox2.Text != String.Empty)
{
euro = Convert.ToDouble(textBox2.Text);
dollar = euro * kurs;
}
else if (textBox3.Text != String.Empty)
{
dollar = Convert.ToDouble(textBox3.Text);
euro = dollar / kurs;
}
//Ausgabe fehlt noch
} |
|
edit: Achja, du willst außerdem
euro einlesen, um dann damit
euro zu berechnen.
Geschrieben von Matze84 am 20.03.2013 um 19:28:
Zitat: |
Original von eulerscheZahl
Es ist ein logischer Fehler: es ist immer eine der zwei Textboxen leer - und du willst immer genau die leere in ein double umwandeln, das kann nicht funktionieren. |
Achja stimmt *g*
Ja Ausgabe fehlt noch....
ich teste das quasi immer stück für stück... das ich ggf sehe wo fehler liegen...
Danke danke danke.