0 % = mensualité fixe. Ex : 1 % fait plus que doubler la mensualité en 1 an.
—
function ceCalculer(){
var C = parseFloat(document.getElementById(‘ce-capital’).value) || 0;
var tauxAnnuel = parseFloat(document.getElementById(‘ce-taux’).value) || 0;
var M = parseFloat(document.getElementById(‘ce-mensualite’).value) || 0;
var croissanceMensuelle = parseFloat(document.getElementById(‘ce-croissance’).value) || 0;
var n = parseFloat(document.getElementById(‘ce-annees’).value) || 0;
var r = tauxAnnuel / 100 / 12; // taux mensuel du placement
var g = croissanceMensuelle / 100; // croissance mensuelle de la mensualité
var nbMois = n * 12;
// Capital de départ, placé pendant toute la durée
var facteurCapital = (r === 0) ? 1 : Math.pow(1 + r, nbMois);
var fvCapital = C * facteurCapital;
// Versements, avec croissance géométrique de PMT
var fvVersements;
if (M === 0) {
fvVersements = 0;
} else if (r === g) {
// cas limite : r = g, la formule standard devient n × PMT × (1+r)^(n-1)
fvVersements = M * nbMois * Math.pow(1 + r, nbMois – 1);
} else if (r === 0) {
// pas de rendement, seulement la croissance des versements
fvVersements = M * ((Math.pow(1 + g, nbMois) – 1) / g);
} else {
fvVersements = M * (Math.pow(1 + r, nbMois) – Math.pow(1 + g, nbMois)) / (r – g);
}
var total = fvCapital + fvVersements;
var derniereMensualite = M * Math.pow(1 + g, nbMois – 1);
document.getElementById(‘ce-resultat’).innerText =
total.toLocaleString(‘fr-FR’, {maximumFractionDigits: 2, minimumFractionDigits: 2}) + ‘ $’;
document.getElementById(‘ce-detail’).innerText =
‘Dernière mensualité (mois ‘ + nbMois + ‘) : ‘ +
derniereMensualite.toLocaleString(‘fr-FR’, {maximumFractionDigits: 0}) + ‘ $/mois’;
}
ceCalculer();