【问题标题】:excel formula to javascript functionexcel公式到javascript函数
【发布时间】:2016-07-26 07:00:16
【问题描述】:

这是我的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 函数中得到的结果不一样。任何帮助将不胜感激。

【问题讨论】:

  • 能否也以纯文本形式添加 Excel 公式,用于复制/格式化?

标签: javascript jquery excel function formula


【解决方案1】:

在 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);

【讨论】:

  • 谢谢。这完美地工作。得到与 excel 相同的结果。
猜你喜欢
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多