You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的for循环中将日薪格式化为两位小数?

如何将日薪格式化为两位小数显示?

你需要把输出中的Rate per Day: 400改成Rate per Day: 400.00,直接用float(rate)只会得到400.0,可以通过以下几种简单方法实现:

方法1:输出时直接格式化(推荐,不改动原始数据)

不需要修改数据存储逻辑,只在display函数的打印语句里,用f-string指定两位小数格式即可:

print(f"""Employee ID: {id}
First name: {fname}
Last name: {lname}
Department: {dept}
Rate per Day: {float(rate):.2f}
""")

这里:.2f是格式化指令,意思是将数值格式化为保留两位小数的浮点数。

方法2:先转成浮点数存储,再格式化输出

如果希望数据列表里存的是数值类型,可以在存储时先把rate转成float,再在输出时指定格式:

  1. 修改数据存储部分:
all_data.append((int(id), fname, lname, dept, float(rate)))
  1. 然后修改display里的打印行:
Rate per Day: {rate:.2f}

方法3:用Decimal模块处理(适合货币场景)

如果涉及货币计算,为了避免浮点数精度问题,可以使用decimal模块:

  1. 先导入模块:
from decimal import Decimal
  1. 存储时转换类型:
all_data.append((int(id), fname, lname, dept, Decimal(rate)))
  1. 输出时同样用:.2f格式化:
Rate per Day: {rate:.2f}

完整修改后的代码示例(方法1)

empList="""201911007,James,Butt,Accounting,365;
201203008,Josephine,Darakjy,Marketing,4000"""

all_data = []
for row in map(str.strip, empList.split(";")):
    if row == "":
        continue
    id, fname, lname, dept, rate = row.split(",")
    all_data.append((int(id), fname, lname, dept, rate))
    
def display():
    for id, fname, lname, dept, rate in all_data:
        print(f"""Employee ID: {id}
First name: {fname}
Last name: {lname}
Department: {dept}
Rate per Day: {float(rate):.2f}
""")
display()

运行后输出:

Employee ID: 201911007
First name: James
Last name: Butt
Department: Accounting
Rate per Day: 365.00

Employee ID: 201203008
First name: Josephine
Last name: Darakjy
Department: Marketing
Rate per Day: 4000.00

内容的提问来源于stack exchange,提问作者Griffeminie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:05:17