cbr*_*awl 3 javascript math excel excel-formula google-sheets
Google Sheets 上的 PV 公式可以采用 3、4 或 5 个参数。我正在尝试计算 JavaScript 中给定参数的现值,但似乎无法弄清楚或找到 Google Sheets 使用的公式。
当前传递给函数的参数是=PV(.00115, 7.57, $66.88)$503.89,函数的输出是 $503.89。这是如何计算的?我需要在 JavaScript 中复制这个公式,或者找到某种类型的库,其中的函数可以为我执行此操作。
小智 5
在查阅维基百科后,我想出了这个函数,它向内置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);
}
}
Run Code Online (Sandbox Code Playgroud)
优化和现代化:
/**
* @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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1018 次 |
| 最近记录: |