Optimizing accuracy
In a few cases, we need to optimize the accuracy of a calculation. This can be challenging and may require some fairly advanced math to determine the limits on the accuracy of a given approach.
An interesting thing we can do in Python is replace floating point approximations with fractions.Fraction
value. For some applications, this can create more accurate answers than floating point, because more bits are used for numerator and denominator than a floating point mantissa.
It's important to use decimal.Decimal
values to work with currency. It's a common error to use a float
value. When using a float
value, additional noise bits are introduced because of the mismatch between Decimal
values provided as input and the binary approximation used by floating point values. Using Decimal
values prevents the introduction of tiny inaccuracies.
In many cases, we can make small changes to a Python application to switch from float
values to Fraction
or Decimal
values. When...