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