16 Stimmen

Eine Zahl mit Kommas formatieren, aber Dezimalstellen beibehalten

Ich möchte die Ziffern in einem Double nach Tausendern gruppieren, aber auch ausgeben, wie viele Dezimalstellen tatsächlich in der Zahl enthalten sind. Ich kann die Formatzeichenfolge nicht herausfinden.

 1000 => 1,000
 100000 => 100,000
 123.456 => 123.456
 100000.21 => 100,000.21
 100200.123456 => 100,200.123456

Haftungsausschlüsse (es ist nicht so einfach, wie Sie denken):

  • Bitte verweisen Sie mich nicht auf diese Frage er beantwortet meine Frage nicht
  • Bitte verweisen Sie mich nicht auf MS DN (Wenn Sie glauben, dass ich sie falsch lese, lesen Sie sie selbst und posten Sie die richtige Antwort)
  • .ToString("n") funktioniert nicht, es rundet die Ziffern

0voto

LeppyR64 Punkte 5010

Das könnte ein wenig langsam sein, aber es wird tun, was Sie wollen.

public static string FormatNumber(double num)
{
    string s = num.ToString();
    string result = "";

    if(s.IndexOf('.') != -1)
    {
        result = s.Substring(s.IndexOf('.'));
        s = s.Substring(0, s.IndexOf('.'));
    }

    while (s.Length > 3)
    {
        result = "," + s.Substring(s.Length - 3);
        s = s.Substring(0, s.Length - 3);
    }
    if (s.Length == 0)
        return result.Substring(1);
    return s + result;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X