Python浮点数占位符输出多余零的解决方法
解决Python价格格式化多余零的问题
你当前用%f格式化价格时,它默认会输出6位小数,所以整数2会变成2.000000(你看到的多出来的零是%f的默认行为导致的)。要只保留两位小数,有几种简单的修改方式:
方法1:修改旧式格式化占位符
直接把%f改成%.2f,指定保留两位小数,这是最贴合你现有代码的修改方式:
elif choice == "3": print("====================================\nPRINTING LIST...") for i in glist: print("%s %.2f %d" %(i["item"], i["price"], i["quant"]))
这样输入价格2时,就会输出2.00,输入3.5的话会输出3.50,完全符合你的需求。
方法2:使用str.format()方法(更灵活)
这是Python 2.6+支持的格式化方式,可读性更强,还能方便调整对齐:
elif choice == "3": print("====================================\nPRINTING LIST...") for i in glist: print("{:<20} {:<15.2f} {:<10d}".format(i["item"], i["price"], i["quant"]))
这里<20表示左对齐并占20个字符宽度,能让输出更整齐,避免手动加空格的混乱。
方法3:使用f-string(Python 3.6+,推荐)
这是目前最简洁直观的写法,语法更清晰:
elif choice == "3": print("====================================\nPRINTING LIST...") for i in glist: print(f"{i['item']:<20} {i['price']:<15.2f} {i['quant']:<10d}")
同样可以通过:<数字来控制对齐和宽度,让输出排版更美观。
内容的提问来源于stack exchange,提问作者salierii
相关产品推荐
相关产品推荐

