Heim >Backend-Entwicklung >C++ >Wie kann ich Dezimalstellen ohne Rundung in C# präzise abschneiden?

Wie kann ich Dezimalstellen ohne Rundung in C# präzise abschneiden?

Susan Sarandon
Susan SarandonOriginal
2025-01-17 21:16:14691Durchsuche

How Can I Precisely Truncate Decimal Places Without Rounding in C#?

Kürzung der Anzahl der Dezimalstellen genau ohne Rundung in C#

Bei der Verarbeitung numerischer Daten ist es oft notwendig, die Anzahl der Dezimalstellen zu kürzen. Beim Abschneiden werden der Dezimalpunkt und die folgenden Ziffern ohne Rundung entfernt, was schwierig sein kann.

Für den Wert 3,4679 kann es beispielsweise erforderlich sein, ihn auf 3,46 zu kürzen, ohne dass ein Rundungsfehler entsteht. Mehrere Versuche mit der Methode Math.Round() und verschiedenen Rundungsmodi führten alle zu einem Wert von 3,47, was inakzeptabel ist.

Eine präzisere Methode beinhaltet eine einfache mathematische Operation:

<code class="language-csharp">value = Math.Truncate(100 * value) / 100;</code>

Diese Berechnung verwendet die Funktion Math.Truncate(), um alle Dezimalstellen aus einem Wert zu entfernen und ihn auf die nächste Ganzzahl abzurunden. Vor der Multiplikation mit 100 verschieben wir den Dezimalpunkt um zwei Stellen nach rechts. Wenn Sie den gekürzten Wert durch 100 dividieren, werden die ursprünglichen Proportionen wiederhergestellt, sodass das gekürzte Ergebnis ohne Rundungsfehler erhalten bleibt.

Es ist jedoch wichtig zu beachten, dass Brüche wie 0,1 im in Programmiersprachen verwendeten Gleitkommasystem nicht exakt dargestellt werden können. Daher kann es durch Kürzungen zu geringfügigen Abweichungen von den erwarteten Ergebnissen kommen.

Das obige ist der detaillierte Inhalt vonWie kann ich Dezimalstellen ohne Rundung in C# präzise abschneiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn