[Python-Dev] Mixing float and Decimal -- thread reboot
facundobatista at gmail.com
Sat Mar 20 00:17:24 CET 2010
On Fri, Mar 19, 2010 at 5:50 PM, Guido van Rossum <guido at python.org> wrote:
> As a downside, there is the worry that inadvertent mixing of Decimal
> and float can compromise the correctness of programs in a way that is
> hard to detect. But the anomalies above indicate that not fixing the
Decimal already has something that we can use in this case, and fits
very nice here: Signals.
Signals represent conditions that arise during computation. Each
corresponds to one context flag and one context trap enabler.
So, if we add a signal like "MixedWithFloats", users will have a flag
in the context that they could check to see if a float was mixed in
the operations executed (and if the user set the trap accordingly, an
exception will be raised when the signal happens).
OTOH, returning a float the first time both are mixed is easy to
check... but if it has downsides, and we prefer to return a Decimal in
that case, note that we have a mechanism in Decimal we can use.
Furthermore, in case we want to ease the transition we can do the following:
- add this signal
- set *by default* the trap to raise an exception when float and
Decimal is mixed
So, the behaviour will be the same as we have now, but users can
easily change it.
More information about the Python-Dev