Сложные проценты JS

Есть код, который возвращает массив с целями по количеству производимого товара за месяц. По сути просто сложные проценты . Код работает , но после 4 - 5 вычислений начинает давать погрешность. Не знаю как исправить. Жду вашу помощь))

function getPlan(currentProduction, months, percent) {
  let result = [];
  for (let i = 1; i <= months; i++) {
    result.push(Math.floor(currentProduction * (((100 + percent) / 100)) ** i));
  }
  return result;
}

console.log(getPlan(1000, 6, 30));

Test 3 failed input:

currentProduction = 1000, months = 6, percent = 30, 
expected output: [1300, 1690, 2197, 2856, 3712, 4825] 

Expected: [ 1300, 1690, 2197, 2856, 3712, 4825 ] 
Received: [ 1300, 1690, 2197, 2856, 3712, 4826 ] 

Ответы (2 шт):

Автор решения: Igor

Они округляют вниз на каждом шаге и используют значение предыдущего месяца для вычисления следующего.

function getPlan(currentProduction, months, percent) {
  let result = [];
  var factor = 1 + percent / 100;
  result.push(Math.floor(currentProduction * factor));
  for (let i = 1; i < months; i++) {
    var v = result[i - 1] * factor;
    result.push(Math.floor(v));
  }
  return result;
}

console.log(getPlan(1000, 6, 30));

→ Ссылка
Автор решения: Mykola Kikets

Ок. Во первых, добро пожаловать на ru.stackoverflow
Во вторых, немного не успел, @Igor опередил но все же... Моя версия такова:

    function getPlan(currentProduction, months, percent) {
      // write code here
      let result = [];
      let fixed_percentage = ((100 + percent)/100);
      for(let i = 1; i <= months; i++){
        result.push(currentProduction=Math.floor(currentProduction*fixed_percentage));
      }
      return result;
    }
→ Ссылка