[Python-Dev] Mixing float and Decimal -- thread reboot

Steven D'Aprano steve at pearwood.info
Sun Mar 21 23:59:53 CET 2010

On Mon, 22 Mar 2010 06:31:57 am Raymond Hettinger wrote:
> I really like Guido's idea of a context flag to control whether
> mixing of decimal and binary floats will issue a warning.
> The default should be to issue the warning (because unless
> you know what you're doing, it is most likely an error).

When you say "warning", do you mean warning.warn(), or an exception?

I'd like to put in a vote for allowing naive users with low requirements 
for accuracy and precision to be able to type something like this in 
the interactive interpreter:

>>> Decimal(1) + 1.0

and get two (in whatever type is decided on) without having to change 
the context or deal with an exception.

Yes, this means that they may be surprised if they perform an operation 
which suffers from rounding errors, but that's no worse than what 
happens with floats.

If naive users are going to use the interpreter as a calculator, they're 
going to start off using floats and ints simply because they require 
less typing. My idea is to allow a gentle learning curve with Decimal 
(and Fraction) without scaring them off with exceptions or excessive 
warnings: a single warning per session would be okay, a warning after 
every operation would be excessive in my opinion, and exceptions by 
default would be right out.

Steven D'Aprano

More information about the Python-Dev mailing list