程式設計師之計算養老保險還是定投理財划算

yydounai發表於2020-12-02

作為程式設計師,想必大家都對於理財有一定的研究。一直想買養老產品,結果通過程式計算發現,其實養老保險並沒有想象中的划算,以下通過計算得出的答案:

// 每2000每年保額獲得的利息
const annuityRate = {
	26: 981.74 / 2000,
	27: 978.78 / 2000,
	28: 975.68 / 2000,
	29: 972.44 / 2000,
}

// 動態規劃計算利息 - 模仿某養老金逐年定投
const fund = function (total, rate, aliveYear, nowYear, time) {
	// total總金  rate利息  aliveYear存貨年齡  nowYear現年齡  time定投次數
	const year = total / time
	// 設定dp路徑
	const dp = new Array(aliveYear - nowYear).fill(0)
	dp[0] = year * (1 + rate)
	for (let i = 1; i < time; i++) {
		dp[i] = (dp[i - 1] + year) * (1 + rate)
	}
	for (let i = time; i < dp.length; i++) {
		dp[i] = dp[i - 1] * (1 + rate)
	}
	return dp[dp.length - 1]
}

// 定投某養老金
const annuity = function (total, rate, aliveYear, nowYear) {
	const year = total / 20
	const value = (aliveYear - nowYear) * (year * annuityRate[nowYear])
	const interest = fund(value, rate, aliveYear, nowYear, aliveYear - nowYear)
	return interest + total
}

const total = 200000 // 定投總額
const rate = 0.04 // 理財產品利息
const aliveYear = 70 // 存活年齡
const nowYear = 27  // 現在年齡
const time = 20 // 定投年數


// 假設總過投20萬,每年1萬,今年27歲,70歲死亡,投保20年
const count1 = fund(total, rate, aliveYear, nowYear, time)
const count2 = annuity(total, rate, aliveYear, nowYear)

console.log('\x1B[36m%s\x1B[0m', `某養老金回本金額:${count2}`)
console.log('\x1B[31m%s\x1B[0m', `定投回本金額:${count1}`)

假設總過投20萬,每年1萬,今年27歲,70歲死亡,投保20年,理財利息是4%

結果得出:

  • 某養老金回本金額:759925.1785457683
  • 定投回本金額:763302.7283591297

當然這裡只是簡單的計算到了70歲所獲得的金額,並沒有把每年的花銷算進去。其實兩者的差距並不大,並且養老本金是需要身故後返回的,而理財並沒有這個問題。。具體演算法有什麼不對或者沒有考慮到的的情況,大家可以和我探討下!

相關文章