Ich lese in eine TextBox mit einem InputScope nur Zahlen und einen Punkt (als Komma) ein. Wenn ich jetzt den Text auslese und in eine Double-Variable packe, erscheint in der Variablen anstatt 25.1 der Wert 251, oder anstatt 300.10 der Wert 30010. Der Punkt aus der TextBox wird gar nicht berücksichtigt. Mit ganzzahligen Zahlen funktioniert alles ohne Probleme. So lese ich aus und parse:
Zahl= Convert.ToDouble(TextBoxBeispiel.Text);
Woran liegt das und wie kann ich dieses Verhalten ändern?
Du solltest aber zusätzlich auch noch die Regionen-Einstellungen berücksichtigen, wenn du die Applikation auch mal in anderen Regionen richtig laufen haben willst. Deswegen solltest du prinzipiell den IFormatProvider benutzen. Je nach Region wandelt dir der den String der Region entsprechend automatisch um. So gibt
Convert.ToDouble("40,00")
in en-US einen wert von 4000, in de-DE aber einen Wert von 40!