## 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 a `fractions.Fraction`

value. For some applications, this can create more accurate answers than floating point, because more bits are used for the 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 working...