Entwickler-Ecke

Basistechnologien - Ländereinstellungen bei Zahlenformaten


stugi82 - Fr 22.08.08 15:46
Titel: Ländereinstellungen bei Zahlenformaten
Hallo,

ich gebe in meiner Oberfläche ein paar Fließkommazahlen aus. Und möchte gerne, dass sie in deutscher Notation mit Komma statt Punkt dargestellt werden. Ich dachte jetzt, wenn ich die CultureInfo auf deutsch stelle, müsste das hinhauen. Dem ist aber leider nicht so. Und die Zahlen zu String konvertieren und dann das , durch einen . ersetzten möchte ich nicht, weil ich die Daten anschließend in Excel exportiere und dann das Excel meckert, dass es einen String anstatt einer Zahl erhalten hat. Weiß jemand wie ich das lösen kann?

C#-Quelltext
1:
2:
3:
4:
5:
double _averageValue 
...
CultureInfo cultureInfoDE = new CultureInfo("de-DE");
_averageValue = System.Convert.ToDouble(_averageValue, cultureInfoDE);
Console.WriteLine(_averageValue);


Ausgabe:
10.2
123.3

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Fr 22.08.08 16:12

Was du im Moment machst, ist eine Zahl in deutscher Formatierung einlesen! Sobald die als Double vorliegt, hat sie keine Formatierung mehr und ist nur noch eine Zahl! Ein Double hat kein (String-)Darstellungsformat! Es gibt ja keinen deutschen oder englischen Double ;-)

Das musst Du also bei der Umwandlung in einen String mit angeben, welche Darstellung Du haben willst!

C#-Quelltext
1:
Console.WriteLine(_averageValue.ToString(cultureInfoDE));                    


Th69 - Fr 22.08.08 16:20

Du solltest auch einen String verwenden (ein 'double' an sich kennt keine Formatierung):

C#-Quelltext
1:
2:
CultureInfo cultureInfoDE = new CultureInfo("de-DE");  
Console.WriteLine(_averageValue.ToString(cultureInfoDE));


stugi82 - Mo 25.08.08 09:50

Hallo,

danke für die Hinweise. Ich habe die Ländereinstellung der Steuerelemente, in denen ich meine Werte ausgebe auf deutsch gesetzt.