Fügen Sie das Komma -Tausend -Trennzeichen zu Dezimalzahl hinzu (.NET)
-
22-09-2019 - |
Frage
Ich habe eine Dezimalzahl, z. B. 1234.500.
Ich möchte es als 1.234,5 anzeigen.
Ich wandle es derzeit in ein Doppel, um die nachverfolgenden 0 -0 zu entfernen.
string.Format("{0:0,0}",1234.500)
Entfernt den Dezimalplatz und andere Formatierungsoptionen scheinen zwei Dezimalstellen zu verwenden.
Kann jemand Einblick geben?
Lösung
Sie sollten eine benutzerdefinierte Formatierung verwenden wie #,##0.00
string s = string.Format("{0:#,##0.00}", xx);
Wird herstellen 1,234.50
Wenn xx = 1234,5 m
Vergessen Sie konvertieren auf double
, Das wird nicht wirklich helfen.
Andere Tipps
Sind Sie sich bewusst, dass .NET integrierte Unterstützung für die korrekte Formatierung von Zahlen gemäß den regionalen Einstellungen jedes Benutzers Ihrer Anwendung? Es ist möglicherweise besser, die regionalen Einstellungen des Benutzers zu nutzen (das .NET -Framework kennt die richtigen Einstellungen bereits).
Wenn Sie jedoch Ihre Anwendung so festlegen möchten, dass sie Zahlen in einer bestimmten regionalen Umgebung formatieren, können Sie dennoch ein bestimmtes Gebietsschema Ihrer Wahl ergeben und .NET dazu zwingen, diese als Grundlage aller Formatierung (nicht nur Zahlen) zu verwenden:
using System.Globalization;
using System.Threading;
...
CultureInfo us = new CultureInfo("en-US");
und dann
Thread.CurrentThread.CurrentUICulture = us;
oder nur
Console.WriteLine(d.ToString("c", us));
Sie sollten sich bewusst sein, dass die Verwendung von Kommas als tausend -Separator für Großbritannien und die USA geeignet ist, aber nicht so, wie Tausende in anderen Ländern angezeigt werden sollten
"Eintausend und fünfundzwanzig wird in den USA als 1.025 und in Deutschland 1.025 angezeigt. In Schweden ist der Tausende Trennzeichen ein Raum"
MSDN hat einen speziellen Abschnitt Das Thema "Globalisierung" gewidmet (dh das ist ein guter Suchbegriff, wenn Sie jemals mehr Details suchen müssen). Diese Seite beschreibt, wie die Verwendung des Pfundzeichens als Ziffer -Platzhalter für die Entfernung der nachverfolgenden Nullen funktioniert (wie von Henk Holterman in einem früheren Kommentar vorgeschlagen).
Siehe auch Benutzerdefinierte numerische Formatketten.
Eine andere Alternative:
decimal d = 1234.56m;
string s = d.ToString("N"); // 1,234.56
Hast du das versucht?
String.Format("{0:0,0.00}", 1234.560);
Versuche dies !
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Try
TextBox1.Text = Format(CInt(TextBox1.Text), "#,#")
TextBox1.SelectionStart = TextBox1.Text.Length
Catch ex As Exception
End Try
End Sub
Versuche dies:
string myNumber = string.Format("{0:#,0.00}", 1234.500);
(Ich habe das in RDLC -Berichten gesehen)