浮動小数点精度: 詳細
浮動小数点精度に関するよくある誤解は、多くの場合、固定の 10 進桁数として表現されますが、それは不正確です。 浮動小数点数は、その表現と演算において 10 進数とは根本的に異なります。
バイナリ表現と精度
浮動小数点数はバイナリ形式を利用し、10 進数ではなくビットを使用します。 精度は仮数部 (仮数部) に割り当てられたビット数によって決まり、値の表現可能な最小変化、つまり分解能が定義されます。 ただし、精度とは、表現された値が真の値にどれだけ近いかを指します。
6~9 桁の主張に異議を唱える
よく引用される MSDN の 6 ~ 9 桁の精度という主張は誤解を招きます。 浮動小数点の精度は固定されていません。表現の正確さは、数値の大きさと 10 進構造によって大きく異なります。
数値の大きさと表現
大きな数値、特に 2 の累乗として簡単に表現できる数値は、正確に表現される可能性があります。 逆に、数値が小さい場合は、10 進数から 2 進数への変換時に重大な不正確性が生じる可能性があります。 たとえば、浮動小数点表現の制限により、「999999.97」は「1,000,000」に丸められる場合があります。
6 ~ 9 桁の経験則の起源
「6 ~ 9 桁」のガイドラインは、次の観察に基づいています。
ただし、これらの観察結果は、浮動小数点形式の固有の精度や精度を正確に反映したものではありません。
要約
浮動小数点演算を正確に理解するには、その 2 進数の性質を認識し、固定 10 進数の精度の概念を放棄する必要があります。 実際の精度と精度は、関係する特定の数値に大きく依存します。
以上が実際、プログラミングにおける Float 型の精度はどれくらいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。