Pythonでイプシロンの標準値(または取得方法)はありますか? 浮動小数点値を比較する必要があり、可能な限り小さい差と比較したい。
C++ にnumeric_limits::epsilon( )
は、任意のデータ型のイプシロン値を与える関数が用意されています。Pythonに同等のものはありますか?
Pythonでイプシロンの標準値(または取得方法)はありますか? 浮動小数点値を比較する必要があり、可能な限り小さい差と比較したい。
C++ にnumeric_limits::epsilon( )
は、任意のデータ型のイプシロン値を与える関数が用意されています。Pythonに同等のものはありますか?
この情報はsys.float_info
、C99 の float.h に対応する にあります。
>>> import sys
>>> sys.float_info.epsilon
2.220446049250313e-16
strcat が投稿したように、ありますsys.float_info.epsilon
。
ただし、浮動小数点比較の絶対誤差マージンとして使用することの落とし穴を忘れないでください。たとえば、大きな数の場合、丸め誤差がイプシロンを超える可能性があります。
復習が必要な場合は、David Goldberg のWhat Every Computer Scientist Should Know About Floating-Point Arithmeticを参照するか、より簡単な復習としてThe Floating Point Guideを参照してください。