double(またはfloat)として表現できる(連続した)整数の正確な範囲はどれくらいですか?私が尋ねる理由は、精度が低下するときにこのような質問に興味があるからです。
あれは
- double(またはfloat)として正確に表現できない最小の正の整数は何
m
ですか?m+1
- double(またはfloat)として正確に表現できない
-n
ような最大の負の整数は何ですか?-n-1
(上記と同じ場合があります)。
これは、-n
との間のすべての整数がm
正確な浮動小数点表現を持っていることを意味します。私は基本的に[-n, m]
フロートとダブルの両方の範囲を探しています。
スコープを標準のIEEE75432ビットおよび64ビット浮動小数点表現に制限しましょう。floatの精度は24ビット、doubleの精度は53ビット(どちらも先頭のビットが非表示)であることはわかっていますが、浮動小数点表現の複雑さのために、これに対する信頼できる答えを探しています。手を振らないでください!
(理想的な答えは、から0
までのすべての整数m
が表現可能であることを証明しますが、そうでm+1
はありません。)