// 2.15a.js // 2024-08-31 // $Id: 2.15a.js 1.1 2024/10/27 08:36:33 s Exp $ // bc, Before-tax cash flow : 税引き前キャッシュ・フロー // da, Depletion amount : 減価償却 // ti, Taxable income : 課税対象収益 // tax : 税金 // ac, After-tax cash flow : 税引き後キャッシュ・フロー // tr, tax rate : 税率 // ir, infration rate : インフレ率 // ic, initial capital expenditure : 初期資本費用 // r, discount rate : 金利 // df, discount factor : 割引係数 // ny : 年数 // pvac, present value of ac : 税引き後キャッシュ・フローの現在価値 'use strict' // function const sum = x => x.reduce((sum, element) => sum + element, 0); // input const tr = 0.34; const ir = 0.04; const r = 0.12; const ic = 10e6; const ny = 5; const bc = [-ic, 2990e3, 2990e3, 2990e3, 2990e3, 2990e3]; const da = [ 0, ic/ny, ic/ny, ic/ny, ic/ny, ic/ny]; // calculating const ti = bc.map((_, i) => bc[i] - da[i] ? bc[i] - da[i] : 0); const ta = bc.map((_, i) => ti[i] * tr); const ac = bc.map((_, i) => bc[i] - ta[i]); const df = bc.map((_, i) => 1 / (1 + r) ** i); const pv = bc.map((_, i) => ac[i] * df[i]); // output console.log('2.15a.js'); console.log('bc', ...bc); console.log('ti', ...ti); console.log('ta', ...ta); console.log('ac', ...ac); console.log('df', ...df.map(x => x.toFixed(3))); console.log('pv', ...pv.map(x => x.toFixed(0))); console.log('sum of pvac=', sum(pv).toFixed(0)); // end