パスワードを忘れた? アカウント作成
492569 journal

arkasの日記: 家買うぜ

日記 by 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とかで見ると雰囲気がつかみやすかったですね。

この議論は、arkas (10211)によって テキとトモのテキ禁止として作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

※ただしPHPを除く -- あるAdmin

読み込み中...