Dezimalstellen ohne Rundung in C# abschneiden
Das Abschneiden numerischer Werte auf bestimmte Dezimalstellen ist in verschiedenen Programmierszenarien von entscheidender Bedeutung. Betrachten wir eine Situation, in der wir den Wert 3,4679 auf 3,46 kürzen müssen, ohne ihn zu runden.
Ein gängiger Ansatz besteht darin, die Funktion Math.Round()
mit einem bestimmten Rundungsmodus zu verwenden. Wie der bereitgestellte Code jedoch zeigt, führt die Verwendung von MidpointRounding.ToEven
oder MidpointRounding.AwayFromZero
aufgrund der Rundung zu 3,47.
Eine präzisere Möglichkeit besteht darin, mathematische Operationen zum Abschneiden des Werts zu verwenden:
<code class="language-csharp">value = Math.Truncate(100 * value) / 100;</code>
Diese Methode kürzt den Wert, indem sie ihn mit 100 multipliziert, dann mit Math.Truncate()
alle Dezimalstellen entfernt und schließlich durch 100 dividiert, um die ursprünglichen Proportionen wiederherzustellen. Dezimalstellen werden effektiv weggelassen, ohne dass gerundet wird.
Hinweis:
Bitte beachten Sie, dass Brüche wie 3,4679 nicht exakt in der Gleitkommaschreibweise dargestellt werden können, was zu leicht unterschiedlichen Ergebnissen führen kann. Für eine hochpräzise Darstellung sollten Sie die Verwendung von Dezimaltypen anstelle von Gleitkommazahlen in Betracht ziehen.
Das obige ist der detaillierte Inhalt vonWie schneidet man Dezimalstellen in C# ab, nicht rundet sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!