Python3.6.2 why is Decimal(x) != Decimal(str(x))

from decimal import Decimal
Decimal(6.49)

Decimal('6.4900000000000002131628207280300557613372802734375')

Decimal("6.49")

Decimal('6.49')

Umm, why would these be different? Is this a bug in the Decimal library? Or is this indeed desired behavior? If so, why?