Bonjour à vous

Je suis actuellement en train de désespérer... cela fait maintenant quelques semaines que je tourne autours du pot afin de résoudre une énigme.
Je suis une grande débutante dans le JS, j'apprends à tatillon en "expérimentant", en décortiquant, et en récoltant des bouts que je modifie en fonction de mes besoins.
Je vous explique ma problématique :

Je souhaite retranscrire une formule excel en JS, le but étant d'obtenir le nombre de mensualité exacte en ayant les données suivantes :
-Le capital à financer : 600€
-Le taux : 16,8%
-La mensualité/mois en € : 50€
(J'ai mis des données afin de mieux décrire mon exemple)

Je pars de la formule suivante : NPM((1+16,89999%)^(1/12)-1;-50;600)
Le résultat obtenu sur Excel est : 13,14

Hors lorsque je passe sur JS avec la formule suivante (ligne 32):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const inputs = {
  k: 600, //Montant financé
  t: 16.89999, // TAUX
  n: 50, // Budget mensuel
  ptz: 0,
}
 
const $wrapper = document.querySelector('.wrapper');
const $inputs = [...document.querySelectorAll('input')];
 
// Create
const $result = document.createElement('div');
const $result2 = document.createElement('div');
 
// Append to Dom
$wrapper.appendChild($result);
$wrapper.appendChild($result2);
 
function render() {
  // DO SOME MATHS
  const k = parseFloat(inputs.k);
  // Capital en euros
  // Duree en années
  let ptz = inputs.ptz; // max ptz;
  let m = parseFloat(0); // Mensualité en euros
 
 
 
 
  t = parseFloat(inputs.t) / 100; // Taux
  n = parseInt(inputs.n);  // Nombre de mensualité
  m = Math.round((( k * t / 100)/(1-( Math.pow(( 1 + t / 100 ),( -n ))))) * 100 ) / 100; // Mensualité en euros
 
 
 
  const k1 = (( m - m ) * n);  // Calcul dernier mois
  const k2 = k - ptz; // Je n'utilise pas
  const m2 = parseFloat(k2 * (t / 12) / (1 - Math.pow(1 + ( t / 12), -n)).toFixed(2)); // Je n'utilise pas
  const m3 = ptz / n; // Je n'utilise pas
 
  const c = (m * n) - k; // Je n'utilise pas
  const c2 = (m2 * n) - k2; // Je n'utilise pas
 
  // Add or Update Data
  $result.innerHTML = `
  <strong>${m.toFixed(2)}</strong> <sup>mois</sup> à <strong>${parseFloat(n).toFixed(0)}</strong> €</strong>
  `;
 
  $result2.innerHTML = `
<strong>1</strong> <sup>mois</sup> à <strong>${parseFloat(k1).toFixed(2)}</strong> €</strong>
`;
}
 
render();
 
$inputs.forEach($input => {
  $input.addEventListener('keyup', e => {
    const target = e.target;
    const type = target.dataset.key;
    inputs[type] = target.value;
    render();
  }, false);
});
Mon résultat JS ne retombe pas sur mon résultat sous excel... J'obtiens 12,52 au lieu de 13,14
Pouvez vous m'aider svp ?
Merci d'avance