(この質問は Ruby のコンテキストで尋ねられますが、より一般的な方法で回答されたとしても動揺しません。)
したがって、数学計算に含まれる浮動小数点数が等しいかどうかを比較することは禁止されており、範囲をテストする必要があることは (ほぼ) 誰もが知っています (Ruby のように):
assert_in_delta 5.0, 3.5+1.5, 0.0001
しかし、浮動小数点数が 1 つのサブシステムから別のサブシステムに渡されるとき、たとえば (Ruby のコンテキストで) 浮動小数点数が等しいかどうかを健全性チェックするときに、これはまだ必要なのでしょうか?
json={:foo => 0.5}.to_json
# POST the JSON to a Rails controller, that puts it in a Mongo database
found_obj=pull_obj_out_of_Mongo # details not important here
assert_in_delta 0.5, found_obj[:foo], 0.0001
個人的には、ここでも assert_in_delta は良いアイデアだと思います。なぜなら、概念的な浮動小数点値 0.5 が、 equals を使用した浮動小数点リテラル 0.5。それは実際にそうですか、それとも浮動小数点数がどのように格納されて渡されるかについて偏執的すぎますか? 答えは、使用されている言語によってどの程度異なりますか?