如何计算计入通胀因素的投资回报回收年限?
计算计入年度通胀因素的投资回报回收年限
核心逻辑
每年的收益会随通胀复利增长,我们需要找到最小的年限,使得累计收益总和覆盖购置成本:
- 第1年收益:
gain_year - 第2年收益:
gain_year × (1 + 通胀率/100) - 第3年收益:
gain_year × (1 + 通胀率/100)² - ...
- 第n年收益:
gain_year × (1 + 通胀率/100)^(n-1)
通过等比数列求和公式推导,回收年限可通过对数计算得出:
- 设通胀率为
r = inflation/100 - 求解不等式:
gain_year × [(1+r)^N - 1]/r ≥ price - 变形后得:
N ≥ log[(price×r/gain_year)+1] / log(1+r)
代码实现(Svelte)
替换原响应式计算逻辑,同时兼容通胀率为0的特殊情况:
<script> let price = 20000; let gain_year = 2350; let inflation = 3; $: { const r = inflation / 100; if (r === 0) { return_in_years = price / gain_year; } else { const numerator = (price * r) / gain_year + 1; return_in_years = Math.log(numerator) / Math.log(1 + r); } } </script> <label for="gain_year">年收益</label> <input id="gain_year" type="number" bind:value={gain_year} /> <label for="price">购置成本</label> <input id="price" type="number" bind:value={price} /> <label for="inflation">年通胀率(%)</label> <input id="inflation" type="number" bind:value={inflation} min="0" step="0.1" /> <div> 投资回收年限:{return_in_years.toFixed(1)} 年 </div>
示例验证
用你给出的参数:
- 购置成本20000美元,年收益2350美元,通胀率3%
- 计算得回收年限约为7.7年,比简单模型的8.5年更短,符合通胀提升后续收益的逻辑
补充说明
- 如果需要整数年限,可对结果使用
Math.ceil(return_in_years);保留小数能更精确反映实际回收进度 - 代码中处理了通胀率为0的边界情况,避免计算错误
内容的提问来源于stack exchange,提问作者Tomca z Brodku
相关产品推荐
相关产品推荐

