题目连接:https://www.51nod.com/Challenge/Problem.html#problemId=2135
简单浮点精确度问题,练习Python语言的基础题,本打算用round()函数,但是float浮点数本来就是不精确的,没法满足条件。这里注意,round()在Python3中是四舍六入五留双,在Python2中是四舍五入。精确到一位小数的四舍五入,直接扩大100倍,化成整数操作,最后处理精度问题,就不会因为系统存储机制的硬伤,精确度跟不上。
a,b,c,d=map(float,input().split())
a*=120
b*=350
c*=450
d*=500
count=a+b+c+d
if a%10>=5:
a+=10
a-=a%10
if b%10>=5:
b+=10
b-=b%10
if c%10>=5:
c+=10
c-=c%10
if d%10>=5:
d+=10
d-=d%10
if count%10>=5:
count+=10
count-=count%10
print('{:.1f}\n{:.1f}\n{:.1f}\n{:.1f}\n{:.1f}'.format(a/100.0,b/100.0,c/100.0,d/100.0,count/100.0))
本文地址:https://blog.csdn.net/ZY_Looking/article/details/107161332
如对本文有疑问, 点击进行留言回复!!
Anaconda(python3.7)+pytorch(1.5.1)急速安装(2020.7.11日安装教程)
网友评论