四舍五入整数时,不要将数字加到末尾。
四舍五入整数时,不要将数字加到末尾。
这个问题已经在这里得到了答案:
我目前正在尝试使用具有可变小数位长度的数字。它可以是整数,也可以有多达10个小数,例如33.3333333。 我想在超过长度时将数字限制为仅具有2个小数,或在小于长度时保持原始状态。
我尝试使用\"{:0:.2f}\".format
,但问题在于对于整数,它还会在字符串末尾添加.00。
当我尝试使用round(3)
时,它将返回3.0。
是否有一种方法,最好是一行代码,可以将3.333333转换为3.33,但仍允许3保持为整数?
admin 更改状态以发布 2023年5月20日
您可以使用条件表达式根据变量的类型选择格式:
for x in (33.3333333, 3): print(("{:0}" if isinstance(x, int) else "{:.2f}").format(x))
您还可以使用字典将类型映射为格式字符串来实现:
formats = {int: "{:0}", float: "{:.2f}"} for x in (33.3333333, 3): print(formats.get(type(x)).format(x))