Decimal(1.1)
和Decimal('1.1')
的差別在於它們所代表的值不同。Decimal(1.1)
是將浮點數1.1轉換為Decimal類型,而浮點數在計算機中是以二進制表示的,因此有些小數在二進制中無法精確表示,因此會發生精度問題。例如:>>> from decimal import Decimal
>>> Decimal(1.1)
Decimal('1.100000000000000088817841970012523233890533447265625')
`
Decimal(1.1)
的實際值是1.100000000000000088817841970012523233890533447265625
,而不是1.1
。Decimal('1.1')
是將字串'1.1'
轉換為Decimal類型,因此可以避免浮點數精度問題,例如:>>> Decimal('1.1')
Decimal('1.1')
`Decimal('1.1')
的實際值是1.1
。