Usando "Decimal" em Python

Alguém pode por favor explicar o que está acontecendo abaixo: (eu uso o Python 3.3)

1. >>> Decimal("0.1") + Decimal("0.1") + Decimal("0.1") - Decimal("0.3")
       Decimal('0.0')

2. >>> Decimal(0.1) + Decimal(0.1) + Decimal(0.1) - Decimal(0.3)
       Decimal('2.775557561565156540423631668E-17')

3. >>> Decimal(0.1 + 0.1 + 0.1 - 0.3)
       Decimal('5.5511151231257827021181583404541015625E-17')

Eu sei que tem a ver com limitação de ponto flutuante, eu ficaria feliz se alguém pode explicar por que

O que tem a" " tem a ver com a diferença entre o exemplo 1 e 2 acimaPor que 2 produz uma resposta diferente de 3, dado que ambos não têm" "?

questionAnswers(1)

yourAnswerToTheQuestion