thanks a lot for codewar
Round any given number to the closest 0.5 step
I.E.
solution(4.2) = 4
solution(4.3) = 4.5
solution(4.6) = 4.5
solution(4.8) = 5
Round up if number is as close to previous and next 0.5 steps.
solution(4.75) == 5
我的解决方案:
def solution(n):
result=divmod(n,0.5) #这一步是产生两结果,第一个是地板除0.5,第二个模0.5
if result[1]>=0.25: #如果模大于,往上进0.5,
return (result[0]+1)*0.5
else:
return result[0]*0.5
看看别人的:
def solution(n):
r = n % 1
if 0 <= r < .25:
z = 0
elif .25 <= r < .75:
z = .5
else:
z = 1
return int(n) + z
浮点数还可以这样写
下一个:
def solution(n):
return int(2*n+0.5)/2