ホームページ > バックエンド開発 > C++ > 浮動小数点計算で不正確な整数が得られるのはなぜですか?

浮動小数点計算で不正確な整数が得られるのはなぜですか?

Linda Hamilton
リリース: 2024-11-19 13:38:02
オリジナル
618 人が閲覧しました

Why Does My Floating-Point Calculation Result in an Incorrect Integer Count?

浮動小数点精度の落とし穴と解決策

浮動小数点数は、分数や実数値を表現する効率が高いため、プログラミングで広く使用されています。 。ただし、以下のクエリに例示されているように、本質的に精度の問題が発生し、予期しない結果を引き起こす可能性があります:

質問:

プログラマが数値を計算するときに不一致が発生しました。浮動小数点入力に基づく列の数。結果は 2.0 に非常に近いにもかかわらず、整数にキャストすると 1 に切り捨てられるため、カウントが不正確になります。

答え:

浮動小数点について-小数点演算:

浮動小数点数の精度は、浮動小数点数の表現方法によって制限されます。コンピュータの内部バイナリ形式。これにより、特に特定の値を扱う場合、若干の不正確さが生じる可能性があります。

  • 正確な表現: すべての値が浮動小数点数として正確に表現できるわけではありません。提供された例 (「4.600」) は正確に保存できないため、わずかにずれた値「4.5999999999999996」になります。
  • 範囲比較: このような状況では、多くの場合、比較する方が意味があります。厳密な等価性を強制するのではなく、許容可能な誤差の範囲で値を設定します。たとえば、「1.9999999999999996」の計算結果は、浮動小数点の制限を考慮すると、妥当なマージン 2.0 の範囲内に収まります。
  • 参考資料: 「すべてのコンピュータ科学者がすべきこと」などのリソースの探索「浮動小数点演算について知る」と「浮動小数点数の比較」を行うと、このトピックについての理解を深めることができます。

以上が浮動小数点計算で不正確な整数が得られるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート