Question
Mortage calculator no php, only javascript . I am having a problem with my calculations, i think my interest is too high in app.js ...
Mortage calculator no php, only javascript. I am having a problem with my calculations, i think my interest is too high in app.js ...
------index.html--------
Mortage Calculator
/**
*
* anonymous function to protect variables from clashing
*
*/
(function () {
// grab the form
// listen for a submit
})();
function calculate(evt) {
try {
let form = document.querySelector("form");
let payment = document.getElementById('mp');
let interest = document.getElementById('ti');
// save form input data
const amount = form.elements[0].value;
const rate = form.elements[1].value;
const years = form.elements[2].value;
// instantiate app and pass data to constructor function
var app = new App(amount, rate, years);
payment.innerHTML = 'Monthly Payment: $' + Number(app.roundToTwo(app.monthlyPayment())).toFixed(2);
interest.innerHTML = 'Total Interest: $' + Number(app.roundToTwo(app.totalInterest())).toFixed(2);
// prevent the form from submitting
// evt.preventDefault();
google.charts.load('current', {
'packages': ['corechart']
});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Principal', app.roundToTwo(app.monthlyPayment())],
['Interest', app.roundToTwo(app.totalInterest())],
]);
// var options = {
// title: 'Pie Chart'
// };
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data);
}
} catch (error) {
console.log(error);
}
return false;
};
---------app.js----------
function App(amount, APR, time) { this.amount = amount; this.APR = APR; this.time = time; this.monthlyRates = (this.APR / 12) / 100; this.yearsToMonths = this.time * 12; }
App.prototype.monthlyPayment = function() { p1 = (this.amount * this.monthlyRates); p2 = (1 - Math.pow((1 + this.monthlyRates), - this.yearsToMonths));
return (p1 / p2); }
App.prototype.totalInterest = function() {
return (this.monthlyPayment() * this.yearsToMonths - this.amount) }
App.prototype.roundToTwo = function(num) {
return +(Math.round(num + "e+2") + "e-2"); };
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started