2013-12-23 4 views
1

파이썬에서는 두 개의 숫자를 나누고 싶습니다. 그리고 대답이 정수가 아니면 위의 숫자로 반올림하고 싶습니다.
예를 들어 100/30은 33.3을주지 않고 4를 제공합니다. 누구든지이 방법을 제안 할 수 있습니까? 감사.Python3.3 반올림

+0

무엇 '-100/33'에 대해? '-3' 또는'-4'? –

+0

그리고'10/9.9999'은 어떻습니까? '1' 또는'2'? –

답변

2

당신은 파이썬이가 수학 라이브러리에서 CEIL 기능을 사용할 수 있습니다,하지만 당신은 논리적 의미에서 보면 이유를 취할 수

a = int(100/3) # this will round down to 3 
b = 100/3 # b = 33.333333333333336, a and b are not equal 

so we can generalize into the following 

def ceil(a, b): 
    if (b == 0): 
     raise Exception("Division By Zero Error!!") # throw an division by zero error 
    if int(a/b) != a/b: 
     return int(a/b) + 1 
    return int(a/b) 
+1

이것은 완벽하게 작동했습니다. 그리고 저는 또한 논리를 이해합니다. – user3130576

+0

@ user3130576 당신이 확인하고 싶은 한가지 여분의 조건은 b가 0이 될 수 없다는 것입니다. 그래서 그것을 다시 잊어 버리겠습니다. :) – JoeC

7

당신은 math.ceil() 기능을 사용할 수 있습니다

>>> import math 
>>> math.ceil(100/33) 
4 
+0

질문이 파이썬 2에 관한 것이라면 결과를 캐스팅해야합니다 :'int (math.ceil (float (100)/33))'. 이것은 2에서 3으로 바뀌 었습니다. –