Steven D'Aprano added the comment: On 03/08/12 22:06, Mark Dickinson wrote: > >> Decimal('snan').is_nan() just returns true and I am under the impression >> that IEEE 754 specifies the same. > > Sure, but IEEE 754 also specifies that math.sqrt(<signalling nan>) should > signal. Since both math.sqrt and math.isnan are going through __float__, > we can't keep everyone happy here.
Is it necessarily a given that math.isnan *must* go through __float__? If it were written in Python, it would be a simple matter of including if isinstance(x, Decimal) and x.isnan(): return True before the conversion to float. By I have no idea whether that is practical in the math module. > The question for me is really what __float__ should do. IEEE 754 doesn't > help here, since it doesn't cover decimal floating-point<-> binary > floating-point conversions. Until such time that floats officially support snans, I think ValueError is the right behaviour. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue15544> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com