New submission from Steven D'Aprano: On issue 15544 Mark Dickinson suggested adding methods to float to match methods on Decimal, giving type-agnostic ways of testing real numbers that don't rely on converting to float. I don't see any sign that Mark raised a feature request, so I'm taking the liberty of doing so myself.
Note that the math.is* functions convert to float first, which means that they behave differently. Example: math.isnan(Decimal('sNAN')) raises ValueError, rather than returning True. float.is_nan float.is_infinity float.is_finite would mirror the spelling of Decimal methods, rather than the math module. As float doesn't support signalling NANs, there probably isn't any need to include is_snan and is_qnan. For what it's worth, I have code that would use this. I currently write something like: if isinstance(x, Decimal) and x.is_nan() or math.isnan(x): ... in order to prevent triggering the ValueError on signalling NANs. ---------- messages: 196219 nosy: stevenjd priority: normal severity: normal status: open title: Add float.is_finite is_nan is_infinite to match Decimal methods type: enhancement versions: Python 3.4 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue18842> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com