• alp@sh.itjust.works
    ·
    1 year ago

    I know this is a humor subreddit and this is a joke, but this problem wasted a huge week of mine since I was dealing with absurdly small numbers in my simulations. Use fsum from math library in Python to solve this people.

    • nous@programming.dev
      ·
      1 year ago

      The lesson here is that floating point numbers are not exact and that you should never do a straight comparison with them. Instead check to see if they are within some small tolerance of each other. In python that is done with math.isclose(0.1 + 0.2, 0.3).

      • lemmyvore@feddit.nl
        ·
        edit-2
        1 year ago

        Please don't try to approximate. Use the decimal module to represent numbers and everything will work as expected and it has a ton of other features you didn't know you needed.

        https://docs.python.org/3/library/decimal.html#module-decimal

    • Dazawassa@programming.dev
      ·
      1 year ago

      One of my lecturers mentioned a way they would get around this was to store all values as ints and then append a . two character before the final one.