Hallo Ralf
Vielen Dank für Deine Ausführungen.
Ich habe folgenden Code in Startmethode eingefügt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| static void Main() { ... CultureInfo MeineKultur; MeineKultur = CultureInfo.CreateSpecificCulture("de-CH"); Thread.CurrentThread.CurrentCulture = MeineKultur; Thread.CurrentThread.CurrentUICulture = MeineKultur;
... } |
Diese Definition übersteuert beim Windows 7 Rechner die manuellen Ländereinstellungen aus der Systemsteuerung korrekt.
Ausgabe: 1'310.0 wird also 1310.0
Beim Windows 8 Rechner wird trotzdem ein Komma anstelle des Punktes gesetzt (seit ca. 3 Wo / seit letztem Updatepacket)
Ausgabe: 1'310.0 wird 1 310,0 / Leerschlag und Komma (von irgendwoher) gesetzt
Diese Interpretation erhalte ich, wenn ich die Methode Convert.ToDouble() ausführe.
Wie kann ich diese Interpretation korrigieren, wo mache ich den Fehler?
Folgender Code bewirkt das Gleiche:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| ... Double d_meinezahl = 1000.1; NumberFormatInfo nfi_meinformat = new CultureInfo("de_CH", false).NumberFormat; nfi_meinformat.NumberGroupSeparator = ""; nfi_meinformat.NumberDecimalDigits = 1; String s_meintext = d_meinezahl.ToString("N", nfi_meinformat); ... |
Auf dem Windows 7 Rechner alles Korrekt.
Ausgabe: 1000.0
Windows 8 leider nicht.
Ausgabe: 1 000,0
Nun weiss ich leider nicht mehr weiter.
Das muss doch irgendwie aus dem Betriebssystem übersteuert werden oder liege ich da falsch?
Vielen Dank für Eure Bemühungen.