Windows Forms Taschenrechner: Komma-Problem?

1 Antwort

Ich hab mir jetzt nicht den gesamten Code angeguckt, aber was mir aufgefallen ist, ist dass du in der Funktion "ParseExpression" die Zahlen mit "InvariantCulture" parst. Das versucht, Zahlen standardmäßig mit einem Punkt als Dezimaltrennzeichen zu parsen.

Wenn du die Culture weglässt, müsste es eigentlich automatisch mit der CurrentCulture geparst werden. Probier mal, ob eins der drei Dinge funktioniert:

Double.TryParse(part, num)
Double.TryParse(part, NumberStyles.Any, CultureInfo.CurrentCulture, num)
Double.TryParse(part, NumberStyles.Any, CultureInfo.GetCultureInfo("de-DE"), num)
JulianOnFire 
Fragesteller
 02.08.2023, 12:01

Hallo

erstmal danke, hat leider aber alles nicht funktioniert

0
daCypher  02.08.2023, 12:16
@JulianOnFire

Dann musst du dir am Besten mal an der Stelle ausgeben lassen, was für ein String jeweils als part ankommt. Du hast ja die eine oder andere Stelle im Code, wo du schon mit den CultureInfos rumprobierst oder Kommas mit Punkten austauschst. Kann vielleicht auch sein, dass du irgendwo versehentlich das Komma einfach rauslöschst.

Wenn du daraus keine internationale App machen willst, wäre es eigentlich am Besten, wenn du alles, was mit Globalization und Cultures zu tun hat, erstmal weglässt, weil .NET standardmäßig mit der CurrentCulture arbeitet, also mit dem, was im Betriebssystem eingestellt ist.

0