Steven D'Aprano wrote: > On Sat, 11 Sep 2010 09:56:41 am bob gailer wrote: >> > I never thought that you can use a float and a integer to look if >> > the number is a integer. >> >> You can't. > > What? Of course you can. > > def is_integer(x): > """Return True if x is an integer.""" > try: > return 1.0*x == int(x) > except (TypeError, ValueError): > return False
> The multiplication by 1.0 is not actually needed, but it doesn't hurt. > > [thinks more carefully...] Actually it does hurt: > >>>> is_integer(Decimal(2)) > False Another problem is the limited precision of floats: >>> x = 10**22 >>> 1.0*x == x True >>> x *= 10 >>> 1.0*x == x False Peter _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor