2013年2月4日是加拿大皇家铸市局发行硬币的最后一天。既然便士已经被淘汰,零售商必须调整总数,使它们在用现金支付时是(5美分的倍数(信用卡和借记卡交易继续以1美分计)。虽然零售商在这方面有一定的自由度,但大多数人会选择四舍五入到最接近5美分的价格。
编写一个程序,从用户那里读取价格,直到输入空行为止。在一行显示所有输入项的总成本,在第二行显示客户用现金支付的应付金额。现金付款的金额应四舍五入到最接近的5美分。计算现金支付金额的一种方法是首先确定总共需要支付多少便士。然后计算号总便士数除以5的余数。最后,如果余数小于2.5,则向下调整总数。否则向上调整总数。
tips:
1.怎么解决空行的问题
2.余数的问题怎么添加
#首先定义总价为0以及要输入的第一个商品的价格
#注意这里的价格sale不要加float或者int等定义数据类型的符号,
#因为我们需要使用空格来终止程序,如果提前定义数据类型,当输入空格时程序不能识别,就会报错
con=0
sale=(input("请输入价格"))
while sale != "":
#在计算总额时再对价格数据进行定义
con += float(sale)
sale=(input("请输入价格"))
print(f"总成本为{con}")
#第二个循环
#计算余数YUSHU,由于我们默认以元为单位,如果直接计算余数也是元,而我们增加或则减少的是分,因此乘以100按分进行计算。
YUSHU=con*100%5
if YUSHU>2.5:
yingfucon=con+5-YUSHU
else:
yingfucon=con-YUSHU
print("应付金额为%.2f"%(yingfucon))
# 设置初始值 也就是第一个商品价格
num=input("请输入商品的价格")
sum=0
# 开始循环 当输入值为空时结束循环
while num!="":
# 将输入的价格转成浮点型
price=float(num)
sum+=price
# 将元转化为分
sum_coin=sum*100
# 进入下一轮循环
num = input("请输入商品的价格")
print(sum)
# 计算余数
remainder=sum_coin%5
if remainder>2.5:
# 计算出新的价格
new_sum_coin=sum_coin-remainder+5
# 将新的价格由美分转化为美元
new_sum = new_sum_coin / 100
else:
new_sum_coin = sum_coin - remainder
new_sum=new_sum_coin/100
print(new_sum)