arkasの日記: 家買うぜ
0x20歳を記念して(?)重い腰を上げて家(というか部屋)を買うことにした(←単なる決意表明)。ローンの負担は家賃負担より軽いとは言え、もろもろ込みにするとちょい増えそう。
と、いうわけで、以下は自作ローン計算機(in python)。どっかに書いてあった公式をパクってきただけだけどね。
from decimal import Decimal
def even_loan_per(loanSum, primeRatePerYear, years):
primeRatePerMonth = primeRatePerYear/12
months = years*12
return (loanSum * primeRatePerMonth * (1+primeRatePerMonth)**months)\
/ ((1+primeRatePerMonth)**months - 1)
def left_loan_after_months(loanSum, primeRatePerYear, per_months_return, months):
primeRatePerMonth = primeRatePerYear/12
return (per_months_return - ((1+primeRatePerMonth)**months)*(per_months_return - loanSum*primeRatePerMonth))\
/(primeRatePerMonth)
if __name__ == "__main__":
import sys
if len(sys.argv) != 4:
print "%s [price] [prime(%)] [years]"
sys.exit(1)
loanSum = Decimal(sys.argv[1])
primePY = Decimal(sys.argv[2])/100
years = Decimal(sys.argv[3])
RperM= even_loan_per(loanSum, primePY, years)
print "per-year debt left:"
last=loanSum
for x in range(1, years+1):
months = x * 12
left = left_loan_after_months(loanSum, primePY, RperM, months)
print ' Diff: ', round(last-left, 2)
print ' ', x, round(left, 2)
print '----'
print "sum", loanSum
print "primePY", primePY
print "years", years
print "R/M", round(RperM, 2)
paid = RperM*12*years
print "total paid", round(paid, 1)
print "Paid/Debt", round(paid/loanSum, 3)
R/Mが毎月の返済額、Paid/Debtは元金に対する総支払い額の比です。手抜きしているのでオプションは固定です。また、最初にでるのは毎年の借金の減り具合。awkでアレしてgnuplotとかで見ると雰囲気がつかみやすかったですね。
家買うぜ More ログイン