On Saturday, March 8, 2014 12:49:02 PM UTC-6, Mark Dickinson wrote:

- if we're aiming to eliminate surprises, the 'fix' doesn't go far enough: Decimal(1.1 + 2.2) will still surprise, as will {snip}

Correct. That is why a decimal literal notation is also needed. I've emulated it here:

>>> from pdeclib import *

>>> sqrt(1.1+2.2)**2

Decimal('3.30000000000000026645352591003756970167159') <==== this is a surprise, to a naive user

>>> sqrt(d(1.1)+d(2.2))**2

Decimal('3.29999999999999999999999999999999999999999') <=== this if decimal literal,

>>>

sqrt(1.1d + 2.2d)

But, you are correct that what is "really" wanted --someday-- is to have

the literal be decimal (rather than float) to begin with.

Neither here nor there, step at a time over time is better than simple status quo.

Please let me be clear, I think Guido's proposal is a very good first step. It makes

sense for the most users (esp naive ones) and does not interfere with advanced users.

marcus