C# で四捨五入せずに小数点以下の桁数を正確に切り捨てる
数値データを処理する場合、小数点以下の桁数を切り捨てることが必要になることがよくあります。切り捨てとは、四捨五入せずに小数点とそれに続く数字を削除することを意味しますが、これは難しい場合があります。
たとえば、値 3.4679 の場合、丸め誤差を導入せずに 3.46 に切り捨てる必要がある場合があります。 Math.Round()
メソッドと異なる丸めモードを使用して複数回試行すると、結果はすべて 3.47 となり、これは受け入れられません。
より正確な方法には、単純な数学的演算が含まれます:
<code class="language-csharp">value = Math.Truncate(100 * value) / 100;</code>
この計算では、Math.Truncate()
関数を使用して値から小数点以下の桁をすべて削除し、最も近い整数に切り捨てます。 100 を掛ける前に、小数点を右に 2 桁移動します。切り捨てられた値を 100 で割ると、元の比率に戻り、丸めバイアスなしで切り捨てられた結果が保持されます。
ただし、0.1 などの分数は、プログラミング言語で使用される浮動小数点システムでは正確に表現できないことに注意することが重要です。したがって、切り捨てにより、予想される結果からわずかに異なる結果が生じる可能性があります。
以上がC# で四捨五入せずに小数点以下を正確に切り捨てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。