난에서 가고 싶은 수 있습니다가장 빠른 방법은 가장 가까운 5/100 분에 둥근
1.215145156155 => 1.2
1.368161685161 => 1.35
1.578414616868 => 1.6
(* 참고 :.이 0이면 1/100 장소 표시해서는 안됩니다)
을무엇이 가장 빠른이 방법이 있습니까?
이것은 내가 지금 무엇을 가지고, 그것은 충분히 빨리되지 않습니다 :
def rounder(v):
v = str(round(float(v),2))
if len(v) == 3: v = v + str(0)
d0 = int(v[0])#ones
d1 = int(v[2])#tenths
d2 = int(v[3])#hundredths
if d2 <= 4:
return str(d0)+'.'+str(d1)
elif 4 < d2 < 7:
return str(d0)+'.'+str(d1)+str(5)
elif d2 >= 7:
if d1 != 9:
return str(d0)+'.'+str(d1+1)
if d1 == 9:
return str(d0+1)+'.'+str(0)
숫자에'str()'을 사용하면 긴 십진수는 없어집니다. (또는 % f 또는'.format()'을 사용하여 길이를 명시 적으로 제한하십시오.) –
Python 2.6에서'1.35'를 입력하면'1.3500000000000001'이됩니다. Python 2.7과 Python 3.x에서 업데이트 된 알고리즘은'1.35'를 제공합니다. –
@Brandon, @Sven : 해당 발언에 감사드립니다. 그들은 정말로 내 대답을 마무리하는 데 도움이됩니다. (미안하지만, 저는 스스로 도울 수 없었습니다). P.S .: "감사합니다"는 진짜입니다. –