2011-10-06 2 views

답변

9

내가 그렇게 할 파이썬 기능의 모르겠지만, 당신은 쉽게 코드를 하나

import math 

def ceil(x, s): 
    return s * math.ceil(float(x)/s) 

float로 변환 두 인수가 정수 경우 정수 분열을 방지하기 위해 파이썬이 필요하다 . from __future__ import division을 사용할 수도 있습니다. 이것은 파이썬 3에는 필요하지 않습니다.

+0

어떻게 그렇게 명백 할 수 있었 을까? 나는 그것을 o_O로 생각하지 않았다. 고맙습니다. – Vladimiroff

+1

'ceil (212, 10)'은'220'을 반환해야하더라도'210'을 반환합니다. 파이썬 2.x에서는 integeres의 정수 나누기가 기본값입니다. 난 내 대답은 비슷한 문제가 (하지만 꽤 동일하지) 1.0을 사용하여 플로트 나누기 강제로했다. – rplnt

+0

맞습니다. 파이썬 3을 주로 사용하기 때문에 생각하지 않았습니다. 나는 변환을 강제로 플로트 (float)하도록 해답을 편집했다. – madjar

0

당신이 할 수있는 일은 이것입니다.

ceil = lambda x,y: math.ceil(x*(1.0/y))/(1.0/y) 

하지만 절대 안전한 것은 아닙니다.

관련 문제