Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- B3 = 100
- B4 = 10
- B5 = B4*12
- B6 = 12
- B7 = 3
- B8 = (1+B6)^(1/12)-1
- B9 = ABS(FV(B8,B5,B3/(1+B7),,1)) // and here lies the problem
- B3 = 100 1 1 2
- B4 = 10 1 2 2
- B9 = 21,751.06 12.39 26.28 52.55
- function FV(rate, nper, pmt, pv, type) {
- var pow = Math.pow(1 + rate, nper),
- fv;
- if (rate) {
- fv = (pmt*(1+rate*type)*(1-pow)/rate)-pv*pow;
- } else {
- fv = -1 * (pv + pmt * nper);
- }
- return fv.toFixed(2);
- }
- function checkNumber(input, min, max, msg)
- {
- msg = msg + " field has invalid data: " + input.value;
- var str = input.value;
- for (var i = 0; i < str.length; i++) {
- var ch = str.substring(i, i + 1)
- if ((ch < "0" || "9" < ch) && ch != '.') {
- alert(msg);
- return false;
- }
- }
- var num = 0 + str
- if (num < min || max < num) {
- alert(msg + " not in range [" + min + ".." + max + "]");
- return false;
- }
- input.value = str;
- return true;
- }
- function computeField(input)
- {
- if (input.value != null && input.value.length != 0)
- input.value = "" + eval(input.value);
- computeForm(input.form);
- }
- function computeForm(form)
- {
- if ((form.payments.value == null || form.payments.value.length == 0) ||
- (form.interest.value == null || form.interest.value.length == 0) ||
- (form.principal.value == null || form.principal.value.length == 0)) {
- return;
- }
- if (!checkNumber(form.payments, 1, 480, "# of payments") ||
- !checkNumber(form.interest, .001, 99, "Interest") ||
- !checkNumber(form.principal, 1, 10000000, "Principal")) {
- form.fv.value = "Invalid";
- return;
- }
- var i = form.interest.value;
- if (i > 1.0) {
- i = i / 100.0;
- form.interest.value = i;
- }
- i /= 12;
- var pow = form.principal.value;
- for (var j = 0; j < form.payments.value *12; j++)
- pow = (pow * i) + (pow *1);
- form.fv.value = pow
- form.totalint.value = (form.fv.value - form.principal.value)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement