Ett lån amorteringsplan är en tabell som beskriver hur varje betalning på ett amortizing lånet tillämpas mot amortering och ränta . En amorteringsplan kan skapas genom en amortering kalkylator , typiskt ett program eller kalkylprogram för ändamålet . Skriva en amorteringsplan miniräknare i Java kan du ge denna användbara funktioner i din Java- applet , applikation eller webbtjänst . Amorteringsplan
amortering av lån ( till exempel ett billån ) amorteras över lånets löptid med regelbundna betalningar . Från varje betalning , är upplupen ränta för perioden betalas med resten appliceras på den huvudansvarige . Ett lån amorteringsplan visar hur tillämpningen av varje enskild betalning fördelas mellan amortering och ränta .
Formeln för beräkning av mängden lån betalning är baserad på den huvudansvarige , den periodiska ränta , och det totala antalet planerade betalningar ( se " Google guide : Google Calculator " länken i avsnittet Resurser för en matematisk operator referens ) :
Betalning = (kapital * ränta ) /( 1 - ( 1 + ränta ) ^ - antal betalningar ) katalog
amorteringsplan genereras genom att beräkna det belopp som betalats till ränta för tiden ( ränta * balans ) och det belopp som betalas till huvudmannen ( betalning - . räntebelopp )
Java Amortering Calculator
Skapa en klass som kallas AmortizationSchedule med medlemsländerna variabler för att lagra det ursprungliga lånebeloppet , antalet betalningar , den periodiska räntan , balans och betalning .
privat dubbel intresse, privata dubbel huvudman , private int numPayments , privata dubbel balans , privata dubbel betalning ,
Skriv en konstruktor som accepterar och sätter rektor , periodiska räntan och antalet betalningar . Balansen och betalningen kommer att beräknas senare ( dubbla som jag , dubbla p , int n ) katalog
offentliga AmortizationSchedule . { Ränta = i; rektor = p ; numPayments = n; }
Lägg en ledamot . funktion för att beräkna och mata schemat
public void printAmoritizationSchedule ( ) {
Deklarera variabler för att lagra beräkningar
dubbel curInterest = 0 , curPrincipal = 0; . dubbla totalPayments = 0 , totalPrincipal = 0 , totalInterest = 0 ;
Beräkna betalning , ange aktuellt saldo på lånebeloppet och skriva ut kolumnrubrikerna för en kommaseparerad bord
betalning = ( . huvudman * ränta ) /( 1 - Math.pow ( ( 1 + ränta ) , - numPayments ) ) , balans = huvudman , dubbel curInterest = 0; System.out.println ( " Period , betalning , amortering, ränta , Balance " ) ;
Loop genom varje betalningsperiod
för ( int period = 1 ; period < = numPayments , tidsperioden + + ) . {
Beräkna ränta delen av den aktuella betalningen .
curInterest = saldo * intresse, .
för slutbetalning , justera för avrundning genom att ställa in betalningen till den aktuella delen plus den obetalda skulden
if ( tid = = numPayments ) { betalning = balans + curInterest ;}
Beräkna strömmen amortering och aktuellt saldo . Skriv ut resultatet
curPrincipal = betalning - curInterest , . Balans - = curPrincipal , System.out.println ( period + " , " + betalning + " , " + curPrincipal + " , " + curInterest + " , " + saldo ) ; .
Lägg det aktuella schemat värdena till de löpande summor och avsluta slingan
totalPayments + = betalning , totalPrincipal + = curPrincipal ; totalInterest + = curInterest ; }
slutligen skriva ut summor för varje kolumn och avsluta metoden
System.out.println ( " Totals , " + totalPayments + " , " + totalPrincipal + " , " + totalInterest ) , . }
din ansökan , instansiera AmortizationSchedule med erforderliga värden och samtal printAmoritizationSchedule ( ) .
Tips och Tweaks
BigDecimal
använda i stället för fördubblas för ekonomiska kalkyler för ökad precision och talformatering kontroll . Format utgång för att begränsa visningen till två decimaler .
Lån är vanligtvis anges i termer av årlig ränta , månatliga betalningar och antalet betalningar . Samla in informationen på det sätt som känns bäst för användarna , och göra de nödvändiga beräkningarna vid beräkningen av schemat .
Som ett alternativ till att skriva amorteringsplan , kan du lagra resultatet i en tvådimensionell array för att återgå till den anropande funktionen .