for f in [0.0, 0.1, 10.0, 12345678.9, 123456789.0, 12345678912345.0, 12345678912345.6, 1.000000000001]: format = "%d" if f.is_integer() else "%s" print("%20r -> %s" % (f, (format % f)))