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.
Decimal does come at a cost though, being slower than raw floats. When you don’t need precision but do need performance then it is still valid to use floats. And quite often you don’t need absolute precision for things.
Be careful however, if you work with really large numbers this will absolutely tank your performance and eat up all your memory.
There’s a reason floating point numbers exist. They are very good at what they do, at the cost of lower precision and being a bit more difficult to work with.
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
Decimal does come at a cost though, being slower than raw floats. When you don’t need precision but do need performance then it is still valid to use floats. And quite often you don’t need absolute precision for things.
Decimal is less precise than binary. It’s just imprecise in ways that are less surprising to humans.
Be careful however, if you work with really large numbers this will absolutely tank your performance and eat up all your memory.
There’s a reason floating point numbers exist. They are very good at what they do, at the cost of lower precision and being a bit more difficult to work with.