javascript - 如何在 Google 表格中计算现值 (PV)?

标签 javascript excel math google-sheets excel-formula

Google 表格上的 PV 公式可以采用 3、4 或 5 个参数。我正在尝试根据 JavaScript 中的参数计算现值,但似乎无法弄清楚或找到 Google 表格正在使用的公式。

传递给函数的参数当前为 =PV(.00115, 7.57, $66.88),函数的输出为 $503.89。这是如何计算的?我需要在 JavaScript 中复制这个公式,或者找到某种类型的库,该库具有可以为我执行此操作的函数。

最佳答案

经过咨询Wikipedia我想出了这个函数,它返回与内置 PV 相同的结果。通过将其作为自定义函数输入并向其抛出一些随机值进行测试。

function myPV(rate, num, amount, remain, type) {
  if (type == 0) {
    var factor = (rate == 0 ? num : (1 - Math.pow(1+rate, -num))/rate);
    return -amount*factor - remain * Math.pow(1+rate, -num);
  }
  else {
    var factor = (rate == 0 ? num : (1 - Math.pow(1+rate, -num))*(1+rate)/rate);
    return -amount*factor - remain * Math.pow(1+rate, -num);
  }
}

优化和现代化:

/**
 * @param {number} rate - interest rate
 * @param {number} num - number of payments
 * @param {number} amount - payment amount
 * @param {number} remain - final value
 * @param {number} type - 0 for end-of-period payments, 1 for start-of-period payments
*/
function myPV(rate, num, amount, remain, type) {
  let factor;

  if (type == 0) {
    factor = (rate == 0 ? num : (1 - Math.pow(1+rate, -num))/rate);
  } else {
    factor = (rate == 0 ? num : (1 - Math.pow(1+rate, -num))*(1+rate)/rate);
  }

  return -amount*factor - remain * Math.pow(1+rate, -num);
}

关于javascript - 如何在 Google 表格中计算现值 (PV)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36757661/

相关文章:

Excel VBA::在循环中查找函数

javascript - Julia 在 Javascript 中设置

c - 在 C 中进行二进制算术的最佳方法?

java - 90度余弦值

javascript - 当类型是 map 的任何成员时提高 Typescript 速度?

javascript - 使用 fetch() 将数据发布到 NodeJS

javascript - 如何使用 Javascript 禁用样式为 jquery-ui 按钮的 <a>

javascript - 如何避免 AJAX 成功函数中的未定义错误消息

python - 从 VBA 运行并执行 python 脚本

excel - 修复 h=0 时格式错误的时间 'hh:nn:ss'