2017-07-24 2 views

Antwort

-1

Ich würde mir vorstellen, Sie müssten die Kommas aus der Zeichenfolge zuerst entfernen.

str = number.Replace("," , "");

str die neue Zeichenfolge zu sein und das Original, die Nummer.

Dann, wenn ich richtig bin in C# zu analysieren, müssen Sie tun .

Sie

+1

Technisch gesehen hast du Recht, aber es gibt ein anderes Problem, das ein 'NumberFormat' ist. In einigen Kultureinstellungen '' wird das Zeichen verwendet, um den Anfang von Dezimalstellen zu markieren, während in anderen das '.' Zeichen verwendet wird. Um dies zum Laufen zu bringen, würde ich vorschlagen, 'CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator' zu verwenden, um diese vor dem Wechsel zum korrekten Dezimaltrennzeichen umzuschalten. –

+0

Danke für den Kommentar, krank im Hinterkopf. –

5

müssen, was Berechnungen auszuführen Dies sollten Sie mit einem doppelten variablen sorgen für die richtige Kultur angeben, wie en-GB:

double.Parse("123,45,67.89", CultureInfo.GetCultureInfo("en-GB")) 

Dieser eine double Wert von 1234567.89 produzieren wird. Wie Sie es dann für die Anzeige formatieren, bleibt Ihnen überlassen.

Beachten Sie, dass die tausend Trennzeichen in dieser Zeichenfolge falsch aussieht, wie Sie eine Gruppe von 3 Ziffern und 2 Gruppen von 2 Ziffern haben, aber es sieht so aus double.Parse und/oder diese Kultur ist egal.

Als Test habe ich überprüft, ob eine der .NET (oder ist es Windows?) Integrierte Kulturen formatiert einen Wert als Währung in etwas mit Gruppen von 2, aber es scheint nicht.

Verwandte Themen