Tengo que calcular la ganancia compuesta.
por ejemplo, tengo $100, aumentando un 10% mensual, y tengo que calcular la ganancia total de 12 meses. Y necesito una ganancia de cada mes en una matriz.
he intentado esto
let capital = 100; let month = 12; let profit_percentage = 10; let total_profit; for (i = 0; i <= month; i++) { total_profit = capital + (profit_percentage / 100) * 100; console.log(total_profit); }
Parece que falta un poco de información aquí, pero si "beneficio" significa la cantidad mayor que el mes anterior:
Beneficio mes a mes:
const m = ((P, p) => new Array(12).fill() .reduce((a, v) => (a.push(a.at(-1) * (1 + p)), a), [P]) .map((v, i, a) => Math.round((a[i + 1] - v) * 100) / 100) .slice(0, -1) )(100, .1);
Entonces, la ganancia total:
Math.round((m.reduce((a, v) => ((a += v), a), 0) * 100)) / 100
Tómalo:
const calculate = (capital, countMonth, profitPercentage) => { const calc = (capital / 100) * profitPercentage; if (countMonth === 1) return capital + calc; return calculate(capital + calc, countMonth - 1, profitPercentage); };
Si necesita una matriz:
const calculate = (capital, countMonth, profitPercentage) => { const calc = (capital / 100) * profitPercentage; if (countMonth === 1) return calc; return ( `${calc}, ` + calculate(capital + calc, countMonth - 1, profitPercentage) ); }; console.log(calculate(capital, month, profit_percentage).split(", "));
El cálculo del interés compuesto se puede hacer así:
const capital = 100, month = 12; profit_percentage = 10, factor=1+profit_percentage/100; let total=capital; for (let i = 1; i <= month; i++) { total *= factor; console.log(i,(total-capital).toFixed(2)); } console.log("The resulting total after 12 months is "+total.toFixed(2))