On 03/09/2014 09:59 AM, Antoine Pitrou wrote:
Therefore, decimal.Decimal(1.1) is the exact decimal value of the binary floating-point numberbest approaching the decimal literal '1.1':
decimal.Decimal(1.1) Decimal('1.100000000000000088817841970012523233890533447265625') decimal.Decimal('1.100000000000000088817841970012523233890533447265625') == 1.1 True
Indeed, the difference is less than a binary floating-point mantissa's resolution:
Yes, I realized that using the number closest to zero, is an implicit rounding down, after I posted.
The increases resolution accounted for the slightly less results in the examples. But because it was using the value closest to the decimal representation (the quoted value) instead of the exact float value. The higher resolution might be slightly higher or lower in that case and have extra, or even possibly (but more rarely) fewer digits. (is that right?)
The decimal is more accurate in that manner. But more picky about quality too. Looks like there is a way to set that in the context.. So that (value +- some error amount) is used in the equality tests. Anyway need to go... Check back later this evening.