On Sat, 11 Feb 2017 06:00 pm, Amit Yaron wrote: > Another option: > Use 'float' instead of 'int'. and check using the method 'is_integer' > of floating point numbers: > > >>> 3.5.is_integer() > False > >>> 4.0.is_integer() > True
A bad option... py> float('12345678901234567') 1.2345678901234568e+16 Notice the last digit of the mantissa? Beyond a certain value, *all* floats are integer, because floats don't have enough precision to include a fractional portion. py> float('12345678901234567.12345').is_integer() True The safest way to treat this is to attempt to convert to an int, if that succeeds return the int; if it fails, try to convert to a float, and if that succeeds, return the float. -- Steve “Cheer up,” they said, “things could be worse.” So I cheered up, and sure enough, things got worse. -- https://mail.python.org/mailman/listinfo/python-list