【问题标题】:How to drop trailing zeros from decimal and format a currency using Python如何从十进制中删除尾随零并使用 Python 格式化货币
【发布时间】:2021-09-13 13:49:57
【问题描述】:

我尝试从十进制中删除尾随零并使用此代码格式化货币

def dropzeros_with_comma(num):
    return "{:,}".format(num)

当 num 为 2220.80 时有效,返回 2,220.8

但是当 num 是 2220.00 它返回 2,220.0 我只想要 2,220

谁能帮忙

【问题讨论】:

    标签: python-3.x robotframework


    【解决方案1】:

    我认为没有特定的格式;您可以手动删除“.0”:

    def dropzeros_with_comma(num):
        s = "{:,}".format(num)
        if s.endswith(".0"):
            return s[:-2]
        else:
            return s
    

    【讨论】:

    • else: 是多余的。
    • 是的,else 是不必要的;它可以被包括在内以保持对称或为简洁而省略
    • 简洁不是原因;这是为了确保函数总是返回一些东西。由于您的代码使用 return 完成了两个分支,这在逻辑上已被涵盖,但代码的修改很容易丢失该属性。我会使用 s = s[:-2] 并让单个 return 语句处理这两种情况。
    • 这也有效;在像这样的简短函数中,这些都可以。在更长的函数中,可能更清楚它是替代列表、守卫还是值的修改
    • 据我所知,也可以使用 int(s) 而不是 s[:-2]
    猜你喜欢
    • 2019-02-03
    • 1970-01-01
    • 2012-06-28
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多