[Shane Hathaway] #- Should we expect this to work? #- #- d = {} #- d[Decimal('1.1')] = 1 #- print d[float('1.1')] #- No, because Decimal('1.1') is not the same number than float('1.1')! >>> d = {} >>> d[Decimal('1.1')] = 1 >>> d {Decimal( (0, (1, 1), -1) ): 1} >>> d[float('1.1')] Traceback (most recent call last): File "<pyshell#10>", line 1, in ? d[float('1.1')] KeyError: 1.1000000000000001 In part, this is why you can not compare Decimal with float, and why you can not create a Decimal directly from float. You can use the alternative method, but you should know what you're doing: >>> Decimal.from_float(1.1) Decimal( (0, (1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 1, 7, 8, 4, 1, 9, 7, 0, 0, 1, 2, 5, 2, 3, 2, 3, 3, 8, 9, 0, 5, 3, 3, 4, 4, 7, 2, 6, 5, 6, 2, 5), -51L) ) >>> Decimal.Decimal.from_float(1.1, 1) Decimal( (0, (1, 1), -1L) ) . Facundo
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4