净现值与内部收益率计算器
输入贴现率与逐期现金流(期初投入为负),得到净现值 NPV 与内部收益率 IRR,附逐期折现明细表、累计现金流与回收期,帮你判断一个项目在给定资金成本下是否值得投。
净现值(NPV)回答的问题是:把未来每一期的现金流按资金成本折算成今天的钱,减去期初投入后还剩多少。NPV > 0 说明在选定贴现率下项目有超额收益,NPV < 0 说明不如把钱放在贴现率对应的去处。内部收益率(IRR)则是反过来的问题——让 NPV 恰好等于 0 的那个贴现率,它衡量项目自身的回报水平,与 IRR 直接比较资金成本即可。
本工具按期末贴现(第 t 期现金流除以 (1+r)^t,期初不贴现),IRR 在 -90%~100% 区间内二分求解;除了两个核心指标,还给出逐期折现明细表(每期现金流、折现后金额、累计值)与未折现口径的回收期(累计现金流首次回正的时点,跨零处线性插值)。现金流每行一期,第一行是期初投入,通常为负。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 填贴现率(年 %):用你的资金成本或期望回报率,如 8。
- 现金流每行一期:第 1 行是期初投入(负数),之后每行是当期回收(正数)。
- 看 NPV 与 IRR:NPV 为正说明贴现率下有超额收益;IRR 高于资金成本才值得投。
- 看明细表与回收期:逐期折现后金额与累计值逐列排开,回本要等几期一眼见分晓。
计算原理与示例
期末贴现与 NPV 口径
净现值的计算口径是期末贴现:第 t 期现金流除以 (1+r)^t,其中 t 从 0 开始——第 1 行是 t=0 期初,不贴现,这就是为什么期初投入直接写负数原值。比如贴现率 10% 时,一年后的 300 按 300÷1.1≈272.73 计入现值。把所有现值加起来就是 NPV,明细表里每一期都列出了折现后金额与累计值。
IRR 的经济含义与求解区间
内部收益率 IRR 是「让 NPV 恰好为 0 的贴现率」,本工具在 -90%~100% 区间二分求解,报告保留两位小数。IRR 的经济含义是项目自身的年化回报率:高于你的资金成本说明值得做,低于则不如把钱放到别处。注意现金流多次变号时 IRR 可能有多个解,此时以 NPV 为准更可靠。
回收期的插值算法
回收期按未折现的累计现金流计算:从第 1 期开始累加,首次回正的那一期就是回本时点;跨零的最后一小段按线性插值细化为两位小数(如 2.6 期)。它回答「多久回本」,但不考虑资金时间价值——NPV 与回收期搭配着看,才能兼顾收益水平与资金占用。
代码示例
JavaScript NPV 求和 + IRR 二分法
// NPV = Σ CFt / (1+r)^t,t 从 0 开始(第 0 期是初始投入)
const npv = (rate, cfs) => cfs.reduce((s, cf, t) => s + cf / Math.pow(1 + rate, t), 0);
// IRR 没有解析解:在 [-0.99, 10] 上二分(NPV 关于 r 单调递减,二分稳定收敛)
function irr(cfs) {
let lo = -0.99, hi = 10;
if (npv(lo, cfs) * npv(hi, cfs) > 0) { return null; } // 无符号变化 = 无解
for (let i = 0; i < 200; i++) {
const mid = (lo + hi) / 2;
if (npv(mid, cfs) > 0) { lo = mid; } else { hi = mid; }
}
return (lo + hi) / 2;
}
// -1000 投入,之后三年各回收 400 / 500 / 600
irr([-1000, 400, 500, 600]); // ≈ 0.1873(18.73%)
Python numpy_financial 一行出 NPV / IRR
import numpy_financial as npf
cfs = [-1000, 400, 500, 600] # 第 0 期是初始投入(负值)
print(npf.npv(0.08, cfs)) # 折现率 8% 时的净现值
print(npf.irr(cfs)) # 内部收益率 ≈ 0.1873
# 手写版等价:sum(cf / (1 + r) ** t for t, cf in enumerate(cfs))
常见问题
NPV 是正的说明什么?
在所选贴现率下,项目未来现金流折成现值后超过了期初投入,超出部分约等于 NPV 的金额。NPV 越大越好;两个项目二选一时,在风险相近的前提下通常选 NPV 高的。
IRR 为什么有时显示无解?
现金流恒正或恒负时不存在「由负转正」的符号变化,IRR 在数学上无解或无经济意义;另外本工具在 -90%~100% 区间内求解,收益率超出该区间也会显示无解。
第一行现金流应该填什么?
期初投入,通常是负数,比如 -1000;从第二行开始是各期回收,为正。工具按第 1 行是 t=0 期初、不贴现的口径计算。
回收期 2.6 期是什么意思?
累计现金流在第 2 期末仍是负的、第 3 期末转正,按跨零处线性插值,大约在第 2.6 期回本。注意这是未折现口径——考虑资金时间价值的话,实际回本会更晚。
计算结果能直接作为投资依据吗?
不能。NPV 与 IRR 只是比较现金流方案的量化工具,结果高度依赖你填的贴现率与现金流预测;本工具不构成任何投资建议,重大决策请结合风险评估与专业意见。
现金流必须从负数开始吗?
不强制。第 1 行通常是期初投入(负数),但工具不检查符号顺序;不过全正或全负的序列没有 IRR(不存在符号翻转),会显示无解。
什么是多重收益率?
现金流正负号多次翻转(投了又投、中途又大额回款)时,NPV=0 的贴现率在数学上可能有多个。二分法只报告区间内的一个解,这类非常规现金流建议直接比较不同贴现率下的 NPV。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。