私が尋ねるつもりだった質問は、指数ではなく仮数に関するものであり、2 つの負の浮動小数点数の合計の「欠落」桁に関して週の初めに私が尋ねた質問と多くの関係があります。
仮数の精度が可変であることを考えると、仮数の現在の精度設定をオーバーフローしたかどうかはどうすればわかりますか? または、予防的な側面から、仮数の精度のオーバーフローが発生する可能性があるかどうかをどのように判断できますか?
よろしく、ブルース。
精度が失われるかどうかを確認するための数値的な方法がいくつかありますが、肝心なのは、精度の定義をよりよく理解する必要があるということです。
-4939600281397002.2812
と
-4939600281397002.2812000000000000
は同じ数ではありません。
追加すると
-2234.6016114467412141
と
-4939600281397002.2812
一緒にすると、正しい出力の精度は 20 桁しかありません。これは、大きい数値の同様のサイズの 12 桁が不明であることを考えると、小さい数値の追加の 12 桁は無意味だからです。それらがゼロであることを暗示することはできますが、その場合は明示的にそのように宣言し、それを処理できる番号付けシステムを使用する必要があります.コンピューターは暗黙の意図を理解するのが得意ではありません.
この問題がいつ発生するかを検出する限り、それらが同じ指数を持っているかどうかを調べるだけです (正規化された仮数 +/- 1 または同様のバイナリ同等物を想定)。それらが正規化されていない場合は、それらを正規化して比較するか、指数とのもう少し複雑な比較を使用する必要があります。
精度と正確さは同じものではありません...
-アダム