excel 公式到 javascript 函数
excel formula to javascript function
这是我的excel公式
fx = ROUNDUP(C17/((1-(1/(1+(C19/12))^(C18*12)))/(C19/12)),0)
结果应该是:
这是我写的javascript函数:
function refreshRenoLoanCalculator() {
var amt = parseInt($('.calc-renoloan .principal-amount').val().replace(/,/g, ''), 10)
console.log(amt); //10 000
var rate = $('.calc-renoloan .loan-rate').val();
console.log(rate); //0.0444
var tenure = $('.calc-renoloan .loan-tenure').val();
console.log(tenure); // 5
var a = rate / 100. / 12.;
console.log(a);
var b = 1. + a;
b = Math.pow(b, (tenure * 12)) - 1.;
console.log(b);
var FC = a / b + a;
FC = FC.toFixed(10);
console.log(FC);
var RP = amt * FC;
console.log(RP);
toolsSetCalculatedValue('.calc-renoloan .calc-result-installment', Math.ceil(RP).toLocaleString().split('.')[0])
$('.calc-renoloan .results-container').slideDown();
}
目前,我从 excel 公式和 javascript 函数得到的结果不一样。任何帮助将不胜感激。
在 JS 中,等效的计算是这样的:
var C17 = 10000;
var C18 = 5;
var C19 = 4.44;
var interest = C19 / 1200;
var foo = Math.ceil(C17 * interest / (1 - (Math.pow(1/(1 + interest), C18 * 12))));
console.log(foo);
主要区别在于利率的乘积(* 1200
与 * 12
相对),因为 Excel 将百分比值存储为 0
和 1
.
如果您希望以与Excel相同的方式计算,则需要将输入速率转换为:
var C17 = 10000;
var C18 = 5;
var C19 = 0.0444; // Note the difference here
var interest = C19 / 12; // and here
var foo = Math.ceil(C17 * interest / (1 - (Math.pow(1 / (1 + interest), C18 * 12))));
console.log(foo);
这是我的excel公式
fx = ROUNDUP(C17/((1-(1/(1+(C19/12))^(C18*12)))/(C19/12)),0)
结果应该是:
这是我写的javascript函数:
function refreshRenoLoanCalculator() {
var amt = parseInt($('.calc-renoloan .principal-amount').val().replace(/,/g, ''), 10)
console.log(amt); //10 000
var rate = $('.calc-renoloan .loan-rate').val();
console.log(rate); //0.0444
var tenure = $('.calc-renoloan .loan-tenure').val();
console.log(tenure); // 5
var a = rate / 100. / 12.;
console.log(a);
var b = 1. + a;
b = Math.pow(b, (tenure * 12)) - 1.;
console.log(b);
var FC = a / b + a;
FC = FC.toFixed(10);
console.log(FC);
var RP = amt * FC;
console.log(RP);
toolsSetCalculatedValue('.calc-renoloan .calc-result-installment', Math.ceil(RP).toLocaleString().split('.')[0])
$('.calc-renoloan .results-container').slideDown();
}
目前,我从 excel 公式和 javascript 函数得到的结果不一样。任何帮助将不胜感激。
在 JS 中,等效的计算是这样的:
var C17 = 10000;
var C18 = 5;
var C19 = 4.44;
var interest = C19 / 1200;
var foo = Math.ceil(C17 * interest / (1 - (Math.pow(1/(1 + interest), C18 * 12))));
console.log(foo);
主要区别在于利率的乘积(* 1200
与 * 12
相对),因为 Excel 将百分比值存储为 0
和 1
.
如果您希望以与Excel相同的方式计算,则需要将输入速率转换为:
var C17 = 10000;
var C18 = 5;
var C19 = 0.0444; // Note the difference here
var interest = C19 / 12; // and here
var foo = Math.ceil(C17 * interest / (1 - (Math.pow(1 / (1 + interest), C18 * 12))));
console.log(foo);