ホームページ >バックエンド開発 >C++ >浮動小数点数を四捨五入せずに小数点以下 2 位まで正確に切り捨てるにはどうすればよいですか?

浮動小数点数を四捨五入せずに小数点以下 2 位まで正確に切り捨てるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-17 21:32:10631ブラウズ

How Can I Accurately Truncate, Not Round, Floating-Point Numbers to Two Decimal Places?

浮動小数点数を小数点第 2 位まで正確に切り捨てる

浮動小数点数の格納方法により、四捨五入せずに浮動小数点数を特定の小数点以下の桁に直接切り捨てるのは困難です。 標準的な丸め方法では、望ましくない丸め誤差が生じることがよくあります。

正確な切り詰めを行うための信頼できる方法には、次の手順が含まれます。

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

このコードは、浮動小数点数を 100 倍し、Math.Truncate を使用して小数部分を削除し (実質的に切り捨て)、結果を 100 で割って元のスケールに戻します。 3.4679 の場合、これは正しく 3.46 となります。

浮動小数点数は常に完全な 2 進表現を持っているわけではないことを覚えておくことが重要です。 したがって、切り捨てられた値と理論的に期待される結果との間に若干の差異が発生する可能性があります。

以上が浮動小数点数を四捨五入せずに小数点以下 2 位まで正確に切り捨てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。