Facundo Batista writes: > Exponent Maximum > ---------------- [...] > The exponent is an integer, and in the actual implementation exists a > maximum > value:: > > DEFAULT_MAX_EXPONENT = 999999999 > DEFAULT_MIN_EXPONENT = -999999999 > ABSOLUTE_MAX_EXP = 999999999 > ABSOLUTE_MIN_EXP = -999999999 > > The issue is that this limit is artificial: [...] > So, should we impose an artificial limit to the exponent? > > This is important, as there're several cases where this > maximums are checked > and exceptions raised and/or the numbers get changed. I strongly prefer for my programming language not to impose aribtrary limits, however, I can't see myself using decimal to represent numbers with 1 billion digits. So IMHO, I would avoid the limit if possible, but if imposing the limit permitted substantial code simplification or performance improvements then I wouldn't complain. Much. > New operations > -------------- > > Tim Peters found I missed three operations required by the > standard. Sure. Your proposal sounds good. > Hash behaviour > -------------- [...] > In the PEP I wrote that Decimal must be hashable. But what > hash should it > give? > > Should the following be true?:: > > hash(Decimal(25) == hash(25) > hash(Decimal.from_float(25.35) == hash(25.35) > hash(Decimal('-33.8')) == hash(-33.8) > > I don't think so. I think that hash(Decimal(...)) just should return a > different value in each case, but no the same value that > other data types. I disagree. If x == y, then that should imply that hash(x) == hash(y). So hash(Decimal(25)) == hash(25) had better be true. On the other hand, hash(Decimal('-33')) CANNOT equal hash(Decimal('-33')), since the latter must equal hash(-33). And I'm not particularly concerned about floats... if it's easy to make the hashes equal for those few numbers which can be expressed EXACTLY as both a (binary) float and a (decimal) Decimal, then that's be "kinda nice", but since there are so few values which can be expressed exactly as both a float and a Decimal, I don't see it as a big issue. -- Michael Chermside
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