Laden...

Convert.ToDouble läuft auf einem System, auf anderem nicht

Erstellt von Ploetzi vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.027 Views
Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren
Convert.ToDouble läuft auf einem System, auf anderem nicht

Hallo,
hab mir was programmiert,...
naja und auf meinem PC rennt das Programm,...
Wenn ichs auf dem anderen laufen lasse, steigt er mir hier immer aus:
xfaktor = Math.Abs((float)Convert.ToDouble(textBox3.Text) / ((float)Convert.ToDouble(rp1x.Text) - (float)Convert.ToDouble(rp2x.Text)));

Alle Textboxen enthalten reine Kommazahlen,...

Meine Idee:dass er vl. in einem System Komma mit . will und im anderen Komma als ,

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Ploetzi,

steigt er mir hier immer aus:

Genaue Exception? Siehe [Hinweis] Wie poste ich richtig? Punkt 5.

Meine Idee:dass er vl. in einem System Komma mit . will und im anderen Komma als ,

das kann schon sein.

Systemsteuerung/Ländereinstellungen/Zahlen/Dezimaltrennzeichen

CultureInfo-Klasse

Dein Programm sollte natürlich mit falschen Benutzereingaben klarkommen: double.TryParse.

herbivore

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

textBox3.Text hat 0,04787
und dann mach ich

            try
            {
                Convert.ToDouble(textBox3.Text);
            }
            catch
            {
                MessageBox.Show("textbox3kannanedumwandeln");
            };

und die msgbox wird ausgegeben

Gelöschter Account
vor 15 Jahren

lass mich raten: formatexception?

im übrigen:

	[Wichtig: [Hinweis] Wie poste ich richtig? ](http://www.mycsharp.de/wbb2/thread.php?threadid=26594)  
		Punkt 5 Problem genau beschreiben, ++inkl. genauer Fehlermeldung++  

nun. es ist ganz einfach:
schau dir
int.Parse(...)
int.TryParse(...)
float.Parse(...)
Float.TryParse(...)
in der :rtfm: an.

ps: bitte an dieser stellen nicht mit try-catch und convert arbeiten.
warum?
siehe: Guide to C# -> Styleguide -> Exceptions

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Ploetzi,

damit verbaust du dir doch wertvolle Informationen. Gib in der MessageBox die Exception aus.

Ich meine, hier ist relativ klar, was die Exception sein wird und die Lösung habe ich ja auch schon genannt. Aber für die Zukunft immer gleich die Exception angeben. Daher auch der Hinweis auf [Hinweis] Wie poste ich richtig? Punkt 5, denn du nicht nur lesen, sondern auch immer beherzigen solltest.

herbivore

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

Hier der Fehler.

Wie behebe ich ihn richtig?

Ich habe mir nun das Fehlerstueckchen durchgelesen. Werde mir nun Parse und tryparse durchlesen.
Wobei ich keinen Vorteil erkenne des tryparse,....weil das auch nicht klappt.

Gelöschter Account
vor 15 Jahren

setzte die von uns genannten verbesserungen um und der fehler kommt nicht mehr vor.

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

Danke ich habe den Fehler.

Da das ganze fuer jemanden anderen auch hilfreich sein kann.
Der Fehler war "," statt ".".
Werde jetzt irgendwie die Laendereinstellugnen auslesen und das dort verwenden.
Danke!
Fertig!

Gelöschter Account
vor 15 Jahren

Werde jetzt irgendwie die Laendereinstellugnen auslesen und das dort verwenden.

das ist keine lösung deines problems, sondern nur eine teillösung, die dennoch andere fehlerquellen zulässt.

Wobei ich keinen Vorteil erkenne des tryparse,....weil das auch nicht klappt.

sry, dann hast du dich nciht ausreichend informiert. prinzipiell gilt: alles was vom user kommt soll durch tryparse gehen.