11
イプシロンを使用してdoubleと0を比較する
今日、私は(他の誰かが書いた)C ++コードを調べていて、このセクションを見つけました: double someValue = ... if (someValue < std::numeric_limits<double>::epsilon() && someValue > -std::numeric_limits<double>::epsilon()) { someValue = 0.0; } 私はこれが理にかなっているかどうかを理解しようとしています。 のドキュメントはepsilon()言う: この関数は、1と[double]で表現できる1より大きい最小値の差を返します。 これは0にも適用されepsilon()ますか?つまり、最小値は0より大きいですか?またはそこに数字の間である0と0 + epsilonで表すことができますかdouble? そうでない場合、比較は同等someValue == 0.0ですか?