上一页 下一页

Finance 类

Finance 类是 BIRT 提供的 JavaScript 类。这个类提供了一组可用来执行各种常用商业计算的静态财务函数。财务值可以表示为浮点值。应用程序无法创建此类的实例。

Finance.ddb

使用双倍余额递减法,此函数返回资产在给定单一期间内的折旧额。双倍余额递减折旧法是一种加速折旧法,与折旧额固定的直线折旧法(SLN)相比,此折旧法在固定资产使用期限早期产生较高的折旧额,从而提高节税额。

此函数使用以下公式来计算单一期间内的折旧额:

depreciation = (( initialCost - totalDepreciationFromPriorPeriods) * 2) / assetLifespan

下列规则适用:

*
*

语法

double ddb( double cost, double salvage, double life, integer period )

参数

initial

双精度型。此数字表达式指定资产的初始成本。

salvage

双精度型。此数字表达式指定资产在其使用期限结束时的价值。

life

双精度型。此数字表达式指定资产的使用期限。必须使用 singlePeriod 的计量单位来提供此值。例如,如果 singlePeriod 以月份计,那么 assetLifespan 必须也以月份计。

period

整数。此数字表达式指定 DDB 将计算折旧额的期间。必须使用 assetLifespan 的计量单位来提供此值。例如,如果 assetLifespan 以月份计,那么 singlePeriod 必须表示一个月时间。

返回

双精度值。

示例

以下示例使用双倍余额递减法来计算购买价为 $1400、折余值为 $200 并且使用期限估计为 10 年的新机器在第一年的折旧额。结果是 $280,对其赋予变量 Year1Deprec:

Year1Deprec = Finance.ddb(1400, 200, 10, 1)

另请参阅

Finance.sln 函数

Finance.syd 函数

Finance.fv

基于固定利率及定额分期付款,此函数返回年金的终值。年金是一段时间内进行的一系列定额现金付款。年金可以是投资(例如每月存款计划),也可以是贷款(例如住房抵押贷款)。年金的终值是指最后一次付款后的现金余额。

例如,如果存款计划的目标是 18 年后积累 $75,000 以支付子女的教育费用,那么此计划的终值是 $75,000。

或者,如果贷款 $11,000,那么贷款的终值是 $0.00。对于所有典型贷款来说,情况均如此。

下列规则适用:

*
*

语法

double fv( double rate, integer nPer, double pmt, double pvalue, integer due )

参数

rate

此双精度数字表达式指定每一期的利率。必须使用 numberPayPeriods 的计量单位来提供此值。例如,如果 numberPayPeriods 以月份计,那么 ratePerPeriod 必须是月利率。

nPer

此整数指定年金付款总期数。必须使用 ratePerPeriod 的计量单位来提供此值。例如,如果 ratePerPeriod 是月利率,那么 numberPayPeriods 必须以月份计。

pmt

此双精度数字表达式指定每笔付款的金额。必须使用 ratePerPeriod 的计量单位来提供此值。例如,如果 ratePerPeriod 以月份计,那么 eachPmt 必须是每月付款额。

pvalue

此双精度数字表达式指定未来付款额或一系列付款额的现值。例如,如果今天在银行存入 $23.94,存期 15 年,复合年利率为 10%,那么最终大约会得到 $100。该 $100 的现值大约是 $23.94。

due

此整数指定各期付款是在期初进行 (1) 还是期末进行 (0)。此值必须为 0 或 1。

返回

双精度型

示例

以下示例假定您女儿出生时您在储蓄帐户存入 $10,000。如果此帐户的复合日利率为 5.7%,那么,当她 18 岁上大学时,此帐户的余额是多少呢?答案是 $27,896.60,将其赋予变量 TotalValue:

TotalValue = Finance.fv(0.057/365, 18*365, 0, -10000, 1)

以下示例与上一个示例几乎完全相同。但是,在本例中,假定利率是复合月利率而不是复合日利率,并且您决定每月在该帐户中另存入 $55。在本例中,赋予 TotalValue 的终值是 $48,575.82:

TotalValue = Finance.fv(0.057/12, 18*12, -55, -10000, 1)

另请参阅

Finance.ipmt 函数

Finance.nper 函数

Finance.pmt 函数

Finance.ppmt 函数

Finance.pv 函数

Finance.rate 函数

Finance.ipmt

基于固定利率及定额分期付款,返回年金在给定时期内的利息偿还额。年金是一段时间内进行的一系列定额现金付款。年金可以是投资(例如每月存款计划),也可以是贷款(例如住房抵押贷款)。每笔付款都由两部分组成,即本金和利息。iPmt 返回付款的利息部分。

下列规则适用:

*
*

语法

double ipmt( double rate, integer per, integer nPer, double pmt, double pvalue, double fvalue, integer due )

参数

rate

此双精度数字表达式指定每一期的利率。必须使用 numberPayPeriods 的计量单位来提供此值。例如,如果 numberPayPeriods 以月份计,那么 ratePerPeriod 必须是月利率。

per

此整数指定特定的时期,将确定该时期内的利息。您必须提供 1 到 numberPayPeriods 范围内的值来作为此值。

nPer

此整数指定年金付款总期数。必须使用 ratePerPeriod 的计量单位来提供此值。例如,如果 ratePerPeriod 是月利率,那么 numberPayPeriods 必须以月份计。

pvalue

此双精度数字表达式指定未来付款额或一系列付款额的现值。例如,如果今天在银行存入 $23.94,存期 15 年,复合年利率为 10%,那么最终大约会得到 $100。在本例中,该 $100 的现值大约是 $23.94。

fvalue

此双精度数字表达式指定您希望最后一次付款之后的现金余额。例如:

*
*

due

此整数指定各期付款是在期初进行 (1) 还是期末进行 (0)。此值必须为 0 或 1。

返回

双精度值。

示例

以下示例假定您贷款 $20,000,还款期为 36 个月,APR 为 11.5%,并且在每个月的第一天还款。在第 5 次还款时,支付了多少利息?答案是 $171.83,并赋予 Interest5:

Interest5 = Finance.ipmt(.115/12, 5, 36, -20000, 0, 1)

另请参阅

Finance.fv 函数

Finance.nper 函数

Finance.pmt 函数

Finance.ppmt 函数

Finance.pv 函数

Finance.rate 函数

Finance.irr

此函数返回现有数组中一系列定期现金流、付款和收款的内部收益率。内部收益率是由定期进行的付款和收款组成的投资的利率。每一期的现金流不必是定额的,年金亦如此。

IRR 与净现值函数 NPV 紧密相关,这是因为 IRR 计算的收益率是与零净现值对应的利率。IRR 是以迭代方式计算的。以 <starting guess> 值开始,它在结果精确到 0.00001% 之前重复进行计算。如果在 20 次迭代后仍无法确定结果,该函数就会失败。

下列规则适用:

*
*
*
*

下列提示可能很有用:

*
*

语法

double irr( double[ ] cash, double intrate)

参数

cash

此双精度值数组指定用于表示现金流值的现有双精度值数组的名称。cashArray 必须至少包含一个正数值(即,收款)和一个负数值(即,付款)。

s

此双精度数字表达式指定您估计内部收益率将达到的值。在大多数情况下,此值为 0.1 或 10%。

返回

双精度型

示例

以下示例假定已使用一系列现金流值填充了数组 myArray。将内部收益率赋予变量 IRRValue:

IRRValue = Finance.irr( myArray, .1 )

另请参阅

Finance.mirr 函数

Finance.npv 函数

Finance.rate 函数

Finance.mirr

此函数返回现有数组中一系列定期现金流或者付款和收款的修正内部收益率。修正内部收益率是指付款和收款利率不同时的内部收益率(IRR)。MIRR 同时考虑投资成本(即 financeRate)和现金再投资收益率(即 reinvestmentRate)。

下列规则适用:

*
*
*
*

因为 MIRR 使用数组中值的顺序来解释付款和收款顺序,所以,请确保以正确的顺序输入付款和收款额。

语法

double mirr( double[ ] arptr, double frate, double rrate)

参数

arptr

此双精度数组指定现有现金流值数组的名称。此数组必须至少包含一个正数值(即,收款)和一个负数值(即,付款)。

frate

此双精度数字表达式指定作为资金成本支付的利率。必须是表示百分比的小数值。

rrate

此双精度数字表达式指定现金再投资的收益率。必须是表示百分比的小数值。

返回

双精度值。

示例

以下示例假定已使用一系列现金流值填充了数组 myArray。如果要支付的资金利率是 12%,收入的收益率是 11.5%,那么修正内部收益率是多少?将答案赋予变量 MIRRValue:

MIRRValue = Finance.mirr( myArray, 0.12, 0.115 )

另请参阅

Finance.irr 函数

Finance.rate 函数

Finance.nper

基于固定利率及定额分期付款,返回年金的期数。年金是一段时间内进行的一系列定额现金付款。年金可以是投资(例如每月存款计划),也可以是贷款(例如住房抵押贷款)。

下列规则适用:

*
*

语法

double nper( double rate, double pmt, double pvalue, double fvalue, integer due )

参数

rate

此双精度数字表达式指定每一期的利率。必须使用 eachPmt 的计量单位来提供此值。例如,如果 eachPmt 是每月付款额,那么 ratePerPeriod 必须是月利率。

pmt

此双精度数字表达式指定每笔付款的金额。必须使用 ratePerPeriod 的计量单位来提供此值。例如,如果 ratePerPeriod 以月份计,那么 eachPmt 必须是每月付款额。

pvalue

此双精度数字表达式指定未来付款额或一系列付款额的现值。例如,如果今天在银行存入 $23.94,存期 15 年,复合年利率为 10%,那么最终大约会得到 $100。在本例中,该 $100 的现值大约是 $23.94。

fvalue

此双精度数字表达式指定您希望最后一次付款之后的现金余额。例如:

*
*

due

此整数指定各期付款是在期初进行 (1) 还是期末进行 (0)。此值必须为 0 或 1。

返回

双精度值。

示例

以下示例假定您贷款 $20,000,APR 为 11.5%,并且在每个月的第一天还款。如果每期还款额为 $653.26,那么,还清贷款需要多少期?答案是 36,将其赋予变量 NumPeriods。

NumPeriods = Finance.nper(.115/12, -653.26, 20000, 0, 1)

另请参阅

Finance.fv 函数

Finance.ipmt 函数

Finance.pmt 函数

Finance.ppmt 函数

Finance.pv 函数

Finance.rate 函数

Finance.npv

基于给定利率,此函数返回一系列定期可变现金流(包括正现金流和负现金流)的净现值。PV 确定一系列定额付款的现值,而 NPV 确定一系列可变付款的现值。净现值是与某项投资相关联的所有未来现金流减去所有初始成本后的结余。换句话说,如果将这笔资金按指定的利率 <rate> 存入银行并且存款期限为由现金流预定,那么它产生的损益与所讨论的现金流系列产生的损益相同。

下列规则适用:

*
*
*
*
*
*

因为 NPV 使用数组中值的顺序来解释付款和收款顺序,所以,请确保以正确的顺序提供付款和收款额。

语法

double npv( double rate, double[ ] arptr )

参数

rate

此双精度数字表达式指定该期内的折扣率。必须使用小数来表示此值。

arptr

此双精度数组指定现有现金流值数组的名称。此数组必须至少包含一个正数值(收款)和一个负数值(付款)。

返回

双精度值。

示例

以下示例假定已使用一系列现金流值填充数组 myArray,并且利率是 11%。净现值是多少?将答案赋予变量 NetPValue:

NetPValue = Finance.npv( .11, MyArray )

Finance.percent

此函数计算两个数值的比率,以百分比计。此函数能够处理两项与百分比的计算相关的关键常规任务:处理分子为零以及处理空值。

语法

double percent( double denom, double num, double valueIfZero )

参数

denom

双精度型。分母。此参数必须包含数字值。

num

双精度型。分子。此参数必须包含数字值。此值可为零。

valueIfZero

双精度型。当分子为零时返回的百分比值。缺省值为空。

返回

两个数值的比率,以百分比计。如果分子为零,那么返回 0。如果两个参数中任何一个为空,那么返回空值。

示例

pct = Finance.percent( 20, 50 ) // 将返回 40
pct = Finance.percent( 20, 0 ) // 将返回 0

Finance.pmt

基于固定利率及定额分期付款,返回年金的每期付款额。年金是一段时间内进行的一系列定额现金付款。年金可以是投资(例如每月存款计划),也可以是贷款(例如住房抵押贷款)。

下列规则适用:

*
*

语法

double pmt( double rate, integer nPer, double pvalue, double fvalue, integer due )

参数

rate

此双精度数字表达式指定每一期的利率。必须使用 ratePerPeriod 的计量单位来提供此值。例如,如果 numberPayPeriods 以月份计,那么 ratePerPeriod 必须是月利率。

nPer

此整数指定年金付款总期数。必须使用 ratePerPeriod 的计量单位来提供此值。例如,如果 ratePerPeriod 是月利率,那么 numberPayPeriods 必须以月份计。

pvalue

此双精度数字表达式指定未来付款额或一系列付款额的现值。例如,如果今天在银行存入 $23.94,存期 15 年,复合年利率为 10%,那么最终大约会得到 $100。在本例中,该 $100 的现值大约是 $23.94。

fvalue

此双精度数字表达式指定您希望最后一次付款之后的现金余额。例如:

*
*

due

此整数指定各期付款是在期初进行 (1) 还是期末进行 (0)。此值必须为 0 或 1。

返回

双精度值。

示例

以下示例假定您贷款 $20,000,还款期为 36 个月,APR 为 11.5%,并且在每个月的第一天还款。每期付款额是多少呢?答案是 $653.26,将其赋予 PaymentAmt。

PaymentAmt = Finance.pmt(.115/12, 36, -20000, 0, 1)

另请参阅

Finance.fv 函数

Finance.ipmt 函数

Finance.nper 函数

Finance.ppmt 函数

Finance.pv 函数

Finance.rate 函数

Finance.ppmt

基于固定利率及定额分期付款,返回年金在给定时期内的本金偿还额。年金是一段时间内进行的一系列定额现金付款。年金可以是投资(例如每月存款计划),也可以是贷款(例如住房抵押贷款)。年金的每笔付款由两部分组成:本金和利息。ppmt 返回付款的本金部分。

下列规则适用:

*
*

语法

double ppmt( double rate, integer per, integer nPer, double pmt, double pvalue, double fvalue, integer due )

参数

rate

此双精度数字表达式指定每一期的利率。必须使用 nPer 的计量单位来提供此值。例如,如果 nPer 以月份计,那么 rate 必须是月利率。

per

此整数指定特定的时期,将确定该时期内的利息。此值必须是 1 到 nPer 范围内的值。

nPer

此整数指定年金付款总期数。必须使用 rate 的计量单位来提供此值。例如,如果 rate 是月利率,那么 nPer 必须以月份计。

pvalue

此双精度数字表达式指定未来付款额或一系列付款额的现值。例如,如果今天在银行存入 $23.94,存期 15 年,复合年利率为 10%,那么最终大约会得到 $100。在本例中,该 $100 的现值大约是 $23.94。

fvalue

此双精度数字表达式指定您希望最后一次付款之后的现金余额。例如:

*
*

due

此整数指定各期付款是在期初进行 (1) 还是期末进行 (0)。此值必须为 0 或 1。

返回

双精度值。

示例

以下示例假定您贷款 $20,000,还款期为 36 个月,APR 为 11.5%,并且在每个月的第一天还款。在第 5 次还款时,支付了多少本金?答案是 $481.43,将其赋予 Principal5:

Principal5 = Finance.ppmt(.115/12, 5, 36, -20000, 0, 1)

另请参阅

Finance.fv 函数

Finance.ipmt 函数

Finance.nper 函数

Finance.pmt 函数

Finance.pv 函数

Finance.rate 函数

Finance.pv

基于固定利率及未来的定额分期付款,此函数返回年金的现值。年金是一段时间内进行的一系列定额现金付款。年金可以是投资(例如每月存款计划),也可以是贷款(例如住房抵押贷款)。现值是组成年金的未来付款额或一系列付款额的现值。

例如,如果今天在银行存入 $23.94,存期 15 年,复合年利率为 10%,那么最终大约会得到 $100。因此,该 $100 的现值大约是 $23.94。

下列规则适用:

*
*

语法

double pv( double rate, integer nPer, double pmt, double fvalue, integer due)

参数

rate

此双精度数字表达式指定每一期的利率。必须使用 nPer 的计量单位来提供此值。例如,如果 nPer 以月份计,那么 rate 必须是月利率。

nPer

此整数指定年金付款总期数。必须使用 rate 的计量单位来提供此值。例如,如果 rate 是月利率,那么 nPer 必须以月份计。

pmt

此双精度数字表达式指定每笔付款的金额。必须使用 rate 的计量单位来提供此值。例如,如果 rate 以月份计,那么 pmt 必须是每月付款额。

fvalue

双精度型。此数字表达式指定最后一次付款后的现金余额。例如:

*
*

due

此整数指定各期付款是在期初进行还是期末进行。此值必须是 1(表示期初)或 0(表示期末)。

返回

双精度型

示例

以下示例假定您正在考虑购买面值为 $1000 的企业债券。此债券年息为 $100,15 年到期,并且在计息年度结束时派息。类似债券的到期收益率是 12.5%。此债券的合理价格是多少?换而言之,它的现值是多少?答案是 $834.18,将其赋予变量 PresentValue:

PresentValue = Finance.pv(.125, 15, 100, 1000, 0)

下列示例假定您购买彩票中奖了。奖金为 $10,000,000,分 20 年支付,每年支付 $500,000,一年以后开始支付。如果年复合利率为 9.5%,此彩票今天的价值是多少呢?答案是 $4,406,191.06,将其赋予 PresentValue:

PresentValue = Finance.pv(.095, 20, 50000,10000000, 0)

以下示例假定您要分三年储蓄 $11,000。如果 APR 是 10.5%,并且您计划每月存入 $325 并在月初存入,那么,要实现目标,帐户里最初应该有多少起始资金呢?答案是 $2,048.06,将其赋予 StartValue。注意,eachPmt 是负数,这是因为它表示要支付的现金:

StartValue = Finance.pv(.105/12, 3*12, -325, 11000, 1)

另请参阅

Finance.fv 函数

Finance.ipmt 函数

Finance.nper 函数

Finance.pmt 函数

Finance.ppmt 函数

Finance.rate 函数

Finance.rate

此函数返回年金在每一期的利率。年金是一段时间内进行的一系列定额现金付款。年金可以是投资(例如每月存款计划),也可以是贷款(例如住房抵押贷款)。

Rate 以迭代方式计算年金的利率。以 startingGuess 值开始,它在结果精确到 0.00001% 之前重复进行计算。如果在 20 次迭代后仍无法确定结果,该函数就会失败。

下列规则适用:

*
*

下列提示可能很有帮助:

*
*

语法

double rate( integer nper, double pmt, double pvalue, double fvalue, integer due, double guess)

参数

nper

此整数指定年金付款总期数。必须使用 pmt 的计量单位来提供此值。例如,如果 pmt 是月付款额,那么 nper 必须以月份计。

pmt

此双精度数字表达式指定每笔付款的金额。必须使用 nper 的计量单位来提供此值。例如,如果 nper 以月份计,那么 pmt 必须是每月付款额。

pvalue

此双精度数字表达式指定未来付款额或一系列付款额的现值。例如,如果今天在银行存入 $23.94,存期 15 年,复合年利率为 10%,那么最终大约会得到 $100。因此,在本例中,该 $100 的现值大约是 $23.94。

fvalue

此双精度数字表达式指定您希望最后一次付款之后的现金余额。例如:

*
*

due

此整数指定各期付款是在期初进行还是期末进行。此值必须是 1(表示期初)或 0(表示期末)。

guess

此双精度数字表达式指定 Rate 的估计返回值。在大多数情况下,此值为 0.1 或 10%。

返回

双精度型

示例

以下示例假定您借贷了 $20,000,并且分三年还清贷款。如果每个月偿还 $653.26 并且在月初支付,那么,您支付的利率(APR)是多少呢?答案是 .115(即 11.5%),将其赋予变量 InterestRate。注意,Rate 的返回值必须乘以 12 才能得到年利率:

InterestRate = Finance.rate(3*12, -653.26, 20000, 0, 1, .1) * 12

另请参阅

Finance.fv 函数

Finance.ipmt 函数

Finance.nper 函数

Finance.pmt 函数

Finance.ppmt 函数

Finance.pv 函数

Finance.sln

此函数返回单个时期资产的直线折旧额。直线折旧法最古老并且最简单的固定资产折旧法。它将资产帐面值减去预计余值,并将它们的差值均匀地分配到资产使用期限的各个期间。此过程用于在计算所得税之前对收入收取固定年度折旧费用。所有参数都必须是正数。

语法

double sln( double cost, double salvage, double life )

参数

cost

此双精度数字表达式指定资产的初始成本。

salvage

此双精度数字表达式指定资产在其使用期限结束时的价值。您可以输入一个余值以查看直线折旧额与余值的偏差,也可以通过输入余值 0(零)以返回没有余值的直线折旧额。

life

此双精度数字表达式指定资产的使用期限。必须使用函数的返回计量单位来提供此值。例如,如果要让 SLN 确定资产的年折旧额,那么 assetLifespan 必须以年计。

返回

双精度值。

示例

以下示例使用直线折旧法来计算购买价为 $1400、余值为 $200 并且使用期限估计为 10 年的新机器的年折旧额。结果是每年 $120,将其赋予 AnnualDeprec:

AnnualDeprec = Finance.sln(1400, 200, 10)

另请参阅

Finance.ddb 函数

Finance.syd 函数

Finance.syd

此函数将返回指定时期的资产的年限总和折旧。年限总和折旧法是一种加速折旧法,与折旧额固定的直线折旧法(SLN)相比,此折旧法在固定资产使用期限的早期产生较高的折旧额,从而提高节税额。

此函数根据使用期限年数的数字之和的倒数比例来计算折旧额。例如,如果资产的使用期限为 4 年,数字 4、3、2、1 相加得 10。于是,第一年的 SYD 是资产的可折旧成本的 4/10,即成本减去余值。第二年的比率为 3/10,依此类推。

下列规则适用:

*
*

语法

double syd( double cost, double salvage, double life, integer period )

参数

cost

此双精度数字表达式指定资产的初始成本。

salvage

此双精度数字表达式指定资产在其使用期限结束时的价值。

life

此双精度数字表达式指定资产的使用期限。必须使用 period 的计量单位来给定此值。例如,如果 period 以月份计,那么 life 必须也以月份计。

period

此整数指定 syd 希望计算折旧额的期间。必须使用 life 的计量单位来给定此值。例如,如果 life 以月份计,那么 period 必须表示一个月时间。

返回

双精度型

示例

以下示例使用年限总和折旧法来计算购买价为 $1400、余值为 $200 并且使用期限估计为 10 年的新机器在第一年的折旧额。结果为 $218.18,将其赋予 Year1Deprec。

Year1Deprec = Finance.syd(1400, 200, 10, 1)

注意:

*
*
*

以下示例计算同一资产在其使用期限内第二年的折旧额。结果为 $196.36,将其赋予 Year2Deprec。

Year2Deprec = Finance.syd(1400, 200, 10, 2)

注意:

*
*
*

另请参阅

Finance.ddb 函数

Finance.sln 函数


© Copyright Actuate Corporation 2013