Raymond Hettinger wrote: > On Mar 21, 2010, at 3:35 PM, Guido van Rossum wrote: >>> It seems to me that Decimals and floats should be considered at >>> the same level (i.e. both implement Real). >> Agreed, but doesn't help. (Except against the idea that Decimal goes >> on the "integer" side of Fraction, which is just wrong.) > > Woohoo! Glad you agree. > I was concerned that idea > was gathering a following.
Heck no, it was just a random late night thought from me, and even I thought it was a somewhat dubious idea. I don't mind at all that it since has been knocked soundly (and deservedly) on the head :) > Reasoning for emitting a warning by default: > > 1) Real actual use cases for mixed decimal / float operations are rare. > 2) But accidental mixed decimal / float is an easy mistake to make. > 3) Implicit coercion hides the error. > 4) A warning flag gives you a chance to catch your error. > 5) A warning is educational (it makes sure that you understand > what your program is doing) > 6). A warning is easily silenced either through a) the warnings module, > b) setting a context flag in decimal, or c) by making the coercion > explicit > using Decimal.from_float(). I'll add another one to that list: (7) For backwards compatible changes, it is easy to go from exception -> warning -> no warning (if we later decide to take that second step). Going from exception -> no warning -> warning (if we were to change our minds the other way) is a lot less user-friendly. (I was going to try to play devil's advocate and argue in favour of float results and/or no warning, but I got nuthin' - Raymond's points made too much sense to me). A warning is nice in that you can mix decimals and floats at the interpreter prompt with a single warning per session, but the warning can still act as a pointer into the weird and wonderful world of binary vs decimal floating point. Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia --------------------------------------------------------------- _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com