これまで、浮動小数点数の等価性を扱った多くの投稿を見てきました。「x と y が等しいかどうかをどのように判断すればよいですか?」などの質問に対する標準的な回答です。は
abs(x - y) < epsilon
ここで、epsilon は固定の小さな定数です。これは、「オペランド」x と y が、丸め誤差が含まれる計算の結果であることが多いためです。そのため、標準の等値演算子 == は意味するものではなく、実際に確認する必要があるのは、x と y が近いかどうかです。 、等しくありません。
ここで、x が y と「ほぼ等しい」場合、x*10^20 も y*10^20 と「ほぼ等しい」はずであると感じています。 " 何に?)。しかし、これらの大きな数では、上記のテストは失敗します。つまり、そのソリューションは「スケーリング」しません。
この問題にどう対処しますか?数値を再スケーリングするか、イプシロンを再スケーリングする必要がありますか? どのように?(それとも私の直感が間違っているのでしょうか?)
ここに関連する質問がありますが、受け入れられた回答は好きではありません.reinterpret_castのことは私には少し難しいようです. 簡単なテストを提供してみてください。