Update 2017-03-02
In the Decimal case python first divides 100 by 101 and gets 1114752383012499 / 2**50. Then it takes the closest representable Decimal to that number, which is Decimal('0.99009900990099009021605525049380958080291748046875'). That's 50 bits of precision because Decimal tries to track and preseve precision in its calculations, and 53 bits of precision is 50 decimal digits of precision. [Update 2017-03-02: thi...