8.833333333339(또는 8.833333333333334)의 결과는 106.00/12소수점 이하 두 자리로 적절하게 반올림됩니다 8.83. 수학적으로 당신이 원하는 것은 천장 함수 인 것처럼 들립니다 . Python math모듈의 이름은 ceil다음과 같습니다.
import math
v = 8.8333333333333339
print(math.ceil(v*100)/100)
각각 바닥 및 천장 함수는 일반적으로 실수를 소수점 이하 자릿수가 0 인 가장 큰 이전 또는 가장 작은 다음 정수에 매핑합니다. 따라서 소수점 이하 두 자리에 사용하려면 먼저 숫자에 10 2 (또는 100)를 곱하여 소수점을 이동합니다. 포인트로 나눈 다음 나중에이를 보상합니다.
math어떤 이유로 모듈 을 사용하고 싶지 않다면 방금 작성한이 (최소한 테스트를 거친) 구현을 사용할 수 있습니다.
def ceiling(x):
n = int(x)
return n if n-1 < x <= n else n+1

샘플 출력 에서 월별 지불액 을 반올림 한 것으로 보이며 , 이는 많은 사람들이 천장 함수의 효과라고 부르는 것입니다. 이 방법은 매월 조금 넘는 것으로 1 / 12 총량이 지불되고있다. 이로 인해 최종 결제 금액이 평소보다 약간 줄어들 었으며 미결제 잔액은 8.76.
월별 지불액 8.83과 약간 더 높은 최종 지불액을 생성하는 일반 반올림을 사용하는 것도 똑같이 유효했을 것 입니다 8.87. 그러나 현실 세계에서 사람들은 일반적으로 지불액이 올라가는 것을 좋아하지 않으므로 각 지불액을 반올림하는 것이 일반적인 관행입니다. 또한 대출자에게 더 빨리 돈을 돌려줍니다.