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?

War es hilfreich?

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)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top