问题描述
删除小数点后多余的0
输入
12.22
12.20
12.0
输出
12.22
12.2
12
解决方案
判断类型并结合字符串的rstrip()
def delete_extra_zero(n):
'''删除小数点后多余的0'''
if isinstance(n, int):
return n
if isinstance(n, float):
n = str(n).rstrip('0') # 删除小数点后多余的0
n = int(n.rstrip('.')) if n.endswith('.') else float(n) # 只剩小数点直接转int,否则转回float
return n
if __name__ == '__main__':
print(delete_extra_zero(12.22)) # 12.22
print(delete_extra_zero(12.20)) # 12.2
print(delete_extra_zero(12.0)) # 12
print(delete_extra_zero(12)) # 12
print(delete_extra_zero(120)) # 120
解决方案2
感谢 YnagShanwen 提供的方案
def delete_extra_zero(n):
"""删除小数点后多余的0"""
n = '{:g}'.format(n)
n = float(n) if '.' in n else int(n) # 含小数点转float否则int
return n
if __name__ == '__main__':
print(delete_extra_zero(12.22)) # 12.22
print(delete_extra_zero(12.20)) # 12.2
print(delete_extra_zero(12.02)) # 12.02
print(delete_extra_zero(12.0)) # 12
print(delete_extra_zero(12)) # 12
print(delete_extra_zero(120)) # 120