如何删除" .0"浮点数?

时间:2016-07-09 14:12:09

标签: floating-point int python-3.5

说我有一个浮点数。如果它是一个整数(例如1.0,9.0,36.0),我想删除" .0(小数点和零)"并写信给stdout。例如,结果将是1,9,36。如果浮点数是有理数,例如2.5335和95.5893,我希望输出与输入的一样,意味着2.5335和95.5893。有一种聪明的方法吗?

只有数字在小数位上有.0或其他数字才有意义。我可以说我的问题是:我怎么知道浮点数是否实际上是一个整数?

我想用它来决定目录名称。例如,如果我输入9.0和2.45,请创建两个目录,dir9和dir2.45。

4 个答案:

答案 0 :(得分:3)

这是一个按照您希望的方式格式化数字的功能:

def formatNumber(num):
  if num % 1 == 0:
    return int(num)
  else:
    return num

例如:

formatNumber(3.11111)

返回

3.11111

formatNumber(3.0)

返回

3

答案 1 :(得分:1)

您可以结合之前的两个答案:

>>>formatNumber(5) 5 >>>formatNumber(5.23) 5.23 >>>formatNumber(6.0) 6

5

答案 2 :(得分:1)

你可以使用string formatting

>>> "%g" % 1.1
'1.1'
>>> "%g" % 1.0
'1'

答案 3 :(得分:0)

正义类型 int(数字) 示例:

int(3.0)

返回

3