Et lån amortisering tidsplan er en tabel, der beskriver , hvordan hver betaling på en afskrivningsperiode lån anvendes mod hovedstol og renter. En amortiseringsplan kan skabes af en afskrivning lommeregner , typisk et software program eller regneark designet til formålet . Skrive en afskrivning lommeregner i Java giver dig mulighed for at yde denne nyttige funktioner i din Java-applet , applikation eller web service. Lånafvikling
afdrag Uden lån ( såsom et hjem pant ), er betalt over lånets løbetid med regelmæssige betalinger . Fra hver betaling , er de påløbne renter for perioden betalt , mens resten anvendes på hovedstolen. Et lån amortisering tidsplan viser, hvordan anvendelsen af hvert enkelt betaling er delt mellem hovedstol og renter.
Formel til beregning af lån betaling beløb er baseret på hovedstol, periodisk rente , og det samlede antal planlagte betalinger (se "Google guide : Google Calculator " linket i afsnittet Ressourcer til en matematisk operator reference) : Hej
Betaling = (hovedstol * rente) /(1 - (1 + rente ) ^ - antallet af betalinger )
amortiseringsplan genereres ved beregningen af det beløb betalt i retning renter for perioden (renter * balance ), og det betalte beløb mod hovedstolen ( betaling - . renter beløb)
< br > Java afskrivning lommeregner
Opret en klasse kaldet AmortizationSchedule med medlemsorganisationer variabler til at gemme det oprindelige lånebeløb , antallet af betalinger, periodiske rentesats , balance og betaling.
privat dobbelt interesse privat dobbelt agenturgiver private int numPayments , private double saldo , privat dobbelt betaling
Skriv en konstruktør , der accepterer og sætter hovedstol, periodisk rente og antallet af betalinger . Balancen og betaling vil blive beregnet senere
offentlig AmortizationSchedule (det dobbelte i , dobbelt p , int n). { Rente = i; principal = p ; numPayments = n ;}
Tilføj et medlem . funktion til at beregne og udlæse tidsplanen
public void printAmoritizationSchedule () {
Erklær variabler til at gemme beregningerne
dobbelt curInterest = 0 curPrincipal = 0; . dobbelt totalPayments = 0, totalPrincipal = 0 totalInterest = 0;
Beregn betalingen , skal du indstille den nuværende balance til lånebeløbet og udskrive kolonneoverskrifterne for en kommasepareret tabel
betaling = ( . hovedstol * rente) /(1 - Math.pow ( (1 + rente ) , - numPayments )), balance = agenturgiver double curInterest = 0; System.out.println ( "periode, Betaling, hovedstol, renter , balance" ) ;
Loop gennem hver betalingsperiode
for (int periode = 1; periode < = numPayments , punktum + +). {
Beregn rentedelen af den nuværende betaling.
curInterest = balance * interesse .
den endelige betaling , justere for afrunding ved at indstille betalingen til den aktuelle rentedelen plus restbeløbet
if ( periode = = numPayments ) { betaling = saldo + curInterest ;}
Beregn den aktuelle hovedstol betaling og den nuværende balance . Print ud resultaterne
curPrincipal = betaling - curInterest , . Balance - = curPrincipal , System.out.println ( periode + " , " + betaling + " , " + curPrincipal + " , " + curInterest + " , "+ balance ) .
Tilsæt de nuværende tidsplan værdier til de løbende totaler og afslutte løkken
totalPayments + = betaling totalPrincipal + = curPrincipal , totalInterest + = curInterest ;}
sidst udskrive totaler for hver kolonne og afslutte metoden
System.out.println ( " totaler , " + totalPayments + " , " + totalPrincipal + " , " + totalInterest ) . } < br >
i din ansøgning , instantiere AmortizationSchedule med de krævede værdier og call printAmoritizationSchedule ().
Tips og Tweaks
Brug BigDecimal i stedet for fordobler for finansielle beregninger for øget præcision og talformateringen kontrol. Format output for at begrænse visning til to decimaler .
Lån typisk angives i årlig rente , månedlige betalinger og antallet af betalinger . Indsamle oplysninger med den måde, det giver mest mening for dine brugere , og gør de nødvendige beregninger , før beregning af tidsplanen.
Som et alternativ til at udskrive lånafvikling , kan du gemme resultaterne i en to- dimensional array til at vende tilbage til den kaldende funktion .