首页 > 其他 > 详细

修约值 4舍6入 5看

时间:2019-12-13 13:46:46      阅读:96      评论:0      收藏:0      [点我收藏+]
def rr(L,a):
if str(a).isdigit():
L = str(L)
print("L is",L)
k = L.find(".")
#没有小数点
if k == -1:
if a > 0:
xc = L+"."+"0"*a
else:
xc = L
print("L为整数修正",xc)
#有小数点
else:
#小数点后位数不够添加0
if len(L[k+1:]) <= a:
xc = L+"0"*(a-len(L[k+1:]))
print("L 小数位不够 添加0",xc)
else:
#正式进入4舍6入5看
if int(L[k+a+1]) >= 6:
xx = int(L[:k+a+1].replace(".", ""))+1
xc = str(xx)[:k]+"."+str(xx)[k:]
print("执行6入",xc)
elif int(L[k+a+1]) <= 4:
xc = L[:k+a+1]
print("执行4舍",xc)
else:
if L[k+a+2:] != ""and int(L[k+a+2:]) > 0:
xx = int(L[:k+a + 1].replace(".", "")) + 1
xc = str(xx)[:k] + "." + str(xx)[k:]
print("执行5模式后面有数 修约值为",xc)
else:
if int(L[k+a]) % 2 == 0:
xc = L[:k + a + 1]
print("执行5前面为偶数舍弃",xc)
else:
xx = int(L[:k + a + 1].replace(".", "")) + 1
xc = str(xx)[:k] + "." + str(xx)[k:]
print("执行5前面为奇数 增加",xc)
else:
xc = "参数输入有误"
return xc
#print(rr(69999.9996,3))
#print(rr(69.9994,3))
#print(rr(6999.9995,3))
#print(rr(6999.9945,3))
print(rr(699.994500,3))
#rr(6999.000,3)
#rr(69.994,3)
没有对输入的L 进行处理

修约值 4舍6入 5看

原文:https://www.cnblogs.com/hengkuamalu/p/12034374.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!