Nachgestellte Nullen aus C#-Dezimalzahlen entfernen: Eine saubere Lösung
Dezimalzahlen zu formatieren, um nachgestellte Nullen zu eliminieren, kann schwierig sein. Eine aktuelle Programmierherausforderung hat die Notwendigkeit einer robusten Lösung deutlich gemacht, die unerwünschte Rundungen vermeidet.
Die Herausforderung:
Die Aufgabe bestand darin, nachgestellte Nullen aus Dezimalzahlen wie diesen zu entfernen:
<code>2.4200 2.0044 2.0000</code>
Die gewünschte Ausgabe war:
<code>2.42 2.0044 2</code>
Standardmethoden wie String.Format
erwiesen sich als unzureichend, da sie entweder die Nullen beibehielten oder Rundungsfehler verursachten.
Die elegante Lösung:
Die Lösung nutzt die interne Struktur des Typs decimal
. Eine Erweiterungsmethode bietet eine saubere Möglichkeit, den Dezimalwert zu normalisieren:
<code class="language-csharp">public static decimal Normalize(this decimal value) { return value / 1.000000000000000000000000000000000m; }</code>
Durch die Division durch diese spezifische Konstante wird der Exponent der Dezimalzahl effektiv angepasst und unnötige nachgestellte Nullen entfernt. Der Aufruf von ToString()
für die normalisierte Dezimalzahl liefert dann die gewünschte Ausgabe.
Beispiel:
<code class="language-csharp">1.200m.Normalize().ToString(); // Output: 1.2</code>
Dieser Ansatz bietet eine präzise und genaue Methode zum Entfernen nachfolgender Nullen und stellt eine praktische Lösung für die Dezimalverarbeitung in C# dar.
Das obige ist der detaillierte Inhalt vonWie kann ich nachfolgende Nullen effizient aus Dezimalzahlen in C# entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!