The following simple function takes a principal amount, an annual percentage rate, and a loan duration in months and returns the total amount of interest to be paid over the period. You can optionally use the percent sign for the percentage rate, and include the dollar sign and comma separators for the principal amount.
You could use the TotalInterest
function in a cfoutput
tag of a form's action page, as follows:
<cfoutput> Loan amount: #Form.Principal#<br> Annual percentage rate: #Form.AnnualPercent#<br> Loan duration: #Form.Months# months<br> TOTAL INTEREST: #TotalInterest(Form.Principal, Form.AnnualPercent,
Form.Months)#<br> </cfoutput>
<cfscript>
function TotalInterest(principal, annualPercent, months) {
Var years = 0;
Var interestRate = 0;
Var totalInterest = 0;
principal = trim(principal);principal = REReplace(principal,"[\$,]","","ALL");
annualPercent = Replace(annualPercent,"%","","ALL");
interestRate = annualPercent / 100;
years = months / 12;
totalInterest = principal*(((1+ interestRate)^years)-1);
Return DollarFormat(totalInterest);
}
</cfscript>
The following table describes the code:
Code | Description |
---|---|
function TotalInterest(principal, annualPercent, months) { |
Starts the |
Var years = 0; Var interestRate = 0; Var totalInterest = 0; |
Declares intermediate variables used in the function and initializes them to 0. All |
principal = trim(principal); principal = REReplace(principal,"[\$,]","","ALL"); annualPercent = Replace(annualPercent,"%","","ALL"); interestRate = annualPercent / 100; years = months / 12; |
Removes any leading or trailing spaces from the principal argument. Removes any dollar sign ($) and comma (,) characters from the principal argument to get a numeric value. Removes any percent (%) character from the Converts the loan from months to years. |
totalInterest = principal*(((1+ interestRate)^years)-1); Return DollarFormat(totalInterest); } |
Calculates the total amount of interest due. It is possible to calculate the value in the Ends the function definition. |
The following code replaces CFScript statements with their equivalent CFML tags.
<cffunction name="TotalInterest">
<cfargument name="principal" required="Yes">
<cfargument name="annualPercent" required="Yes">
<cfargument name="months" required="Yes">
<cfset var years = 0>
<cfset var interestRate = 0>
<cfset var totalInterest = 0>
<cfset principal = trim(principal)>
<cfset principal = REReplace(principal,"[\$,]","","ALL")>
<cfset annualPercent = Replace(annualPercent,"%","","ALL")>
<cfset interestRate = annualPercent / 100>
<cfset years = months / 12>
<cfset totalInterest = principal*
(((1+ interestRate)^years)-1)>
<cfreturn DollarFormat(totalInterest)>
</cffunction>