假设我有一个浮点数。如果它是一个整数(例如 1.0、9.0、36.0),我想删除“.0(小数点和零)”并写入标准输出。例如,结果将是 1, 9, 36。如果浮点数是有理数,例如 2.5335 和 95.5893,我希望输出与输入相同,即 2.5335 和 95.5893。有什么聪明的方法可以做到这一点吗?
只有数字是否有 .0 或小数点后的其他数字才重要。我可以说我的问题是:我如何知道浮点数是否实际上是整数?
我想用它来决定目录名称。例如,如果我输入 9.0 和 2.45,则创建两个目录 dir9 和 dir2.45。
这里有一个函数可以按照您想要的方式格式化您的数字:
def formatNumber(num):
if num % 1 == 0:
return int(num)
else:
return num
例如:
formatNumber(3.11111)
退货
3.11111
formatNumber(3.0)
退货
3
您可以合并之前的 2 个答案:
formatNumber = lambda n: n if n%1 else int(n)
>>>formatNumber(5)
5
>>>formatNumber(5.23)
5.23
>>>formatNumber(6.0)
6
您可以使用 fstrings 来做到这一点,例如
print(f'{1.0:g},{1.2:g}') # Output: 1,1.2
num = 5.0
if float(num) == int(num):
num = int(num)
输出:5
进一步“MD”。 Ferdous Ibne Abu Bakar 的回答,如果你有一个字符串,这个函数就可以工作:
val = str(5.0)
def remove_zero_float(val):
if float(val) == int(float(val)):
val = int(float(val))
return val
输出:5
只需输入 整数(数字) 示例:
int(3.0)
退货
3