When you are comparing floats in an unit test, a common notion is to round off
the numbers being compared to some places.

self.assertEquals(obj.change(), round(decimal.Decimal(0.471404524888533), 8))

You could rewrite this as:

self.assertAlmostEqual(obj.change(), 0.471404524888533, places=8)

This will round off both obj.change()'s value and 0.471404524888533 to 8 decimal places and then compare.