浮動小数点の背後にある技術は、慣れるまでに多くの時間がかかります。ここでは詳しく説明しません。
簡単に言えば、浮動小数点は高いドメインを実現します (ゼロに近い非常に小さな数から非常に大きな数まで、場合によっては宇宙の原子の数よりも大きい場合もあります)。浮動小数点は、相対を維持することでこれを実現しますエラー定数。つまり、数値は小数点以下の固定数の後に丸められ始めます (これは単純化されていますが、原理を理解するのに役立ちます)。これは、ほとんどの自然科学における「有効数字」の概念に非常に似ています。ただし、これは、浮動小数点数が常に何らかの形で丸められることを意味します。非常に大きな数に非常に小さな数を追加すると、小さな数は切り捨てられ、大きな数は残ります。これは、小さい数値がしきい値を下回っている場合に発生します。多くの数値を追加する場合、最初にそれらを並べ替えて、大きい数値の前に小さい数値を追加する必要がある場合があります。考慮すべき数値安定性の概念もあります。つまり、丸めによってアルゴリズムが正しい結果からどのようにずれていくかということです。
一方、固定小数点表現には常に同じ絶対誤差があります。通貨を小数点以下 4 桁で保存すると、データが最大 .00005 セントずれることがわかります。ただし、データを追加すると、このエラーが再び累積する可能性がありますが、このルールは浮動小数点のルールとは大きく異なります。
重度の数値作業を行っていない限り、これらの問題はおそらく考慮すべきではありません。ほとんどの場合、浮動小数点数と固定小数点数は十分に注意すれば問題なく機能します (つまり、浮動小数点数と固定小数点数には絶対に使用==
しないでください。ただし、それらを比較する正しい方法は両方で異なります)。また、AFAIK フロートは科学研究でより頻繁に使用されます。ほとんどの場合、科学者は数値計算のトレーニングを受けており、丸めの処理方法を知っており、比較的正確な結果にのみ関心があるためです。固定小数点は、各丸めを計算してどこかに保存する必要がある金融で使用されます (多くの場合、銀行は四捨五入された 0.5 マイクロセントを保持するだけです)。そのため、後で説明できるように、絶対誤差を適切に制御する必要があります。それ。