2016-07-26 63 views
1

這是Excel公式,我有Excel公式爲JavaScript函數

fx = ROUNDUP(C17/((1-(1/(1+(C19/12))^(C18*12)))/(C19/12)),0) 

excel formula

這是結果應該是: the result

這是我寫的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(); 

} 

在t他的時刻,我從Excel公式和JavaScript函數得到的結果是不一樣的。任何幫助將不勝感激。

+1

難道您還添加了Excel公式以純文本,用於複製/格式化目的? – boxmein

回答

0

在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存儲百分比值作爲浮分在01之間。

如果您願意以同樣的方式爲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);

+0

謝謝。這工作完美。獲得與excel相同的結果。 –