粲粲姑姑 发表于 2023-11-19 22:12:11

python怎么在输入浮点数值时保留两位小数?具体要求如下

输入
输入包含12行,每行包含一个数,为某个月的结余。每个数都是不大于1,000,000的正数,保留两位小数,省略"$"符。
输出
输出一个数,为这12个月的平均月末结余,保留到小数点后第二位,并在最前面加一个"$"符。


样例输入
100.00
489.12
12454.12
1234.10
823.05
109.20
5.27
1542.25
839.18
83.99
1295.01
1.75


样例输出
$1581.42

本人编写的代码如下:
#财务管理
sum=0
for i in range(12):
    n=float(input())
    n_num=round(n,2)
    sum+=n_num
    i+=1
   
print(sum)
a=sum/12
print("${:.2f}".format(a))

请问如何修改

Mike_python小 发表于 2023-11-19 22:13:09

你的代码几乎正确,只需要进行一些微调就可以达到要求。以下是修改后的代码:


# 财务管理
total = 0
for i in range(12):
    n = float(input())
    n_num = round(n, 2)
    total += n_num

average = total / 12
formatted_average = "${:.2f}".format(average)
print(formatted_average)


这样你就能够得到正确的输出了。希望这对你有所帮助。

isdkz 发表于 2023-11-19 22:17:19

# 财务管理
total = 0
for i in range(12):
    n = float(input())
    total += n

average = total / 12
print("${:.2f}".format(average))


以上代码对输入的12个月结余进行累加后,计算平均值,并将结果格式化为保留两位小数的金额形式。原始代码中的 n_num 和多余的 i+=1 操作都是不必要的,因此进行了相应的修改。

eat蟒蛇 发表于 2023-11-20 10:27:09

本帖最后由 eat蟒蛇 于 2023-11-20 10:29 编辑

[\code]
import re
def is_number(string):
    pattern = re.compile(r'^[-+]?*\.?+([-+]?+)?$')
    return bool(pattern.match(string))
sum = 0
for i in range(12):
    n = input("请输入的"+str(i+1)+"个数据:")
    if is_number(n):
      n_num = float(n)
      sum += n_num
    else:
      n = input("数据有误,请重新输入的"+str(i+1)+"个数据:")
      while True:
            if is_number(n):
                n_num = float(n)
                sum += n_num
                break
            else:
                n = input("数据有误,请重新输入的"+str(i+1)+"个数据:")

average = sum / 12
print("${:.2f}".format(average))
[\code]
页: [1]
查看完整版本: python怎么在输入浮点数值时保留两位小数?具体要求如下