Python删除小数点后多余的0

问题描述

删除小数点后多余的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




参考文献

  1. python中输出时如何省略小数末位的零?
  2. 格式字符串语法 — Python文档
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XerCis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值