Concept
How can a PHP program calculate and round a monthly loan payment?
ComputerScienceOne / Paying the Piper
"Let’s adapt the solution for the loan amortization schedule we developed in Section 4.7.3. First, we’ll read the principle, terms, and interest as command line inputs. Adapting the formula for the monthly payment and using the standard math library’s pow() function, we get\n\n$monthlyPayment = ($monthlyInterestRate * $principle) /\n\n(1 - pow( (1 + $monthlyInterestRate), -$n));\n\nThe monthly payment may come out to be a fraction of a cent, say $43.871. For accuracy, we need to ensure that all of the figures for currency are rounded to the nearest cent. The standard math library does have a round() function, but it only rounds to the nearest whole number, not the nearest 100th. However, we can adapt the “off-the-shelf” solution to fit our needs. If we take the number, multiply it by 100, we get 4387.1 which we can now round to the nearest whole number, giving us 4387. We can then divide by 100 to get a number that has been rounded to the nearest 100th!\n\n$monthlyPayment = round($monthlyPayment * 100) / 100;\n\nWe can use the same trick to round the monthly interest payment and any other number expected to be whole cents. To output our numbers, we use printf() and take care to align our columns to make make it look nice. To finish our adaptation, we handle the final month separately to account for an over/under payment due to rounding."
Related Ideas
- How can a loan amortization schedule handle rounded payments in C?ComputerScienceOne · Paying the Piper
- What is 28?ComputerScienceOne · Paying the Piper
- How can a loan amortization schedule be adapted in C?ComputerScienceOne · Nested Loops
- How do default parameter values work in PHP functions?ComputerScienceOne · Optional & Default Parameters
- How is generalized rounding introduced in PHP?ComputerScienceOne · Generalized Rounding
- How can a general-purpose PHP function round values to a specified decimal place?ComputerScienceOne · Quadratic Roots
- How can a generalized rounding function round values to different decimal places?ComputerScienceOne · Generalized Rounding
- How can a generalized rounding method round numbers to any decimal place?ComputerScienceOne · Generalized Rounding