繁体   English   中英

Excel公式到JavaScript功能

[英]excel formula to javascript function

这是我拥有的Excel公式

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

excel公式

结果是: 结果

这是我写的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将百分比值存储为介于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); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM