using list operator “in” with floating point values

前端 未结 3 2050
迷失自我
迷失自我 2021-01-14 11:34

I have a list with floats, each number with 3 decimals (eg. 474.259). If I verify the number in the list like this:

if 474.259 in list_sample:
    print \"so         


        
3条回答
  •  青春惊慌失措
    2021-01-14 11:46

    Comparing floating point numbers for exact equality usually won't do what you want. This is because floating point numbers in computers have a representation (storage format) which is inherently inaccurate for many real numbers.

    I suggest reading about it here: http://floating-point-gui.de/ and doing something like a "fuzzy compare" using an "epsilon" tolerance value to consider the numbers equal so long as they differ by less than x% or whatever.

提交回复
热议问题