Autor Beitrag
stugi82
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Fr 22.08.08 15:46 
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?
ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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!
ausblenden C#-Quelltext
1:
Console.WriteLine(_averageValue.ToString(cultureInfoDE));					

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 22.08.08 16:20 
Du solltest auch einen String verwenden (ein 'double' an sich kennt keine Formatierung):
ausblenden C#-Quelltext
1:
2:
CultureInfo cultureInfoDE = new CultureInfo("de-DE");  
Console.WriteLine(_averageValue.ToString(cultureInfoDE));
stugi82 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: 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.