javascript для расчета процентной доли за каждые 12 месяцев - PullRequest
0 голосов
/ 21 февраля 2019

Я попытался вычислить некоторые числа, используя JavaScript для цикла.Но, не удалось получить желаемый результат.

Например, базовое количество составляет 10000, а процентное значение равно 8.

Первые 12 месяцев должно быть,

10000 1000010000 10000 10000 10000 10000 10000 10000 10000 10000 10000

В следующие 12 месяцев мне нужно рассчитать 8 процентов от 10000 и добавить его к базовому количеству.8 процентов от 10000 - это 800. Таким образом, выходные данные за следующие 12 месяцев:

10800 10800 10800 10800 10800 10800 10800 10800 10800 10800 10800 10800

Следующие 12 месяцев,Я должен рассчитать 8 процентов от 10800 и добавить его к предыдущему базовому количеству.8 процентов от 10800 - 864. Таким образом, выходные данные за следующие 12 месяцев:

11664 11664 11664 11664 11664 11664 11664 11664 11664 11664 11664 11664

Следующие 12 месяцев,Я должен рассчитать 8 процентов от 11664 и добавить его к предыдущему базовому количеству.8 процентов из 11664 - 933,12.Таким образом, выходные данные за следующие 12 месяцев:

12597.12 12597.12 12597.12 12597.12 12597.12 12597.12 12597.12 12597.12 12597.12 12597.12 12597.12 12597.12

Пробовал пока код ниже,

Javascript

function myFunction() {
    l = 12;
    a = document.getElementById("base").value;
    hk = (a*document.getElementById("per").value)/100;


    for (var i = 0; i < l; i++) {
      if(i % 12 === 0) {
          a = Number(document.getElementById("base").value) + Number(hk);
      }
    }
         document.getElementById("demo").innerHTML += a;


  }

HTML

<div>
    <span>Base</span>
    <input type="text" id="base" value="10000" />
  </div>
  <div>
    <span>Percentage</span>
    <input type="text" id="per" value="8" />
  </div>

  <button onclick="myFunction()">Click</button>

  <p id="demo"></p>

JsFiddle

Ответы [ 4 ]

0 голосов
/ 21 февраля 2019

Только что попробовал с Javascript повторить вывод.Считая верхний цикл зависимым числом раз, которое вы хотите вычислить.

let baseValue = 10000
const basePercent = 0.08
const months = 12
let numberOfYears = 5
let skipFirstYear = false
for(let j = 0; j< numberOfYears; j++ ) {
    if(j === 1) {
     skipFirstYear = true
    }
    if(skipFirstYear) {
      baseValue += baseValue * basePercent
    }
    for(let i = 0; i<months; i++) {
     console.log(baseValue)
    }
}
0 голосов
/ 21 февраля 2019

var a;
function myFunction() {
    l = 12;
    a = a || document.getElementById("base").value;
    hk = (a*document.getElementById("per").value)/100;

    for (var i = 0; i < l; i++) {
      	document.getElementById("demo").innerHTML += ' ' + a;
    }
    a = Number(a) + Number(hk);
    document.getElementById("demo").innerHTML += '<br>'

  }
  
  function call() {
      b = document.getElementById("cycles").value;
      if (b) {
        for (var i = 0; i < b; i++) {
          myFunction();
        }
      } else {
        myFunction();
      }
  }
<div>
    <span>Base</span>
    <input type="text" id="base" value="10000" />
  </div>
  <div>
    <span>Percentage</span>
    <input type="text" id="per" value="8" />
  </div>
  <div>
    <span>Years</span>
    <input type="text" id="cycles" value="4" />
  </div>
  
  <button onclick="call()">Click</button>
  
  <p id="demo"></p>
0 голосов
/ 21 февраля 2019

Попробуйте выполнить

  • Вам необходимо отслеживать обновленное значение a, следовательно, перемещайте его за пределы функции
  • . При каждом нажатии проверяйте значение a,Если это в первый раз, выберите его из поля ввода и для последовательных щелчков вы можете выбрать то же самое из вычисленного значения во время предыдущего выполнения
  • Чтобы напечатать значение 12 раз, просто выполните цикл для подготовки результирующегострока.
  • Наконец добавьте строку к соответствующему результирующему элементу.

var a;
function myFunction() {
  var l = 12;
  a = a || Number(document.getElementById("base").value);
  var hk = (a * document.getElementById("per").value) / 100;
  a += Number(hk);
  var r = "";
  for (var i = 0; i < l; i++) {
      r += a + " ";
  }
  document.getElementById("demo").innerHTML += r + "<br/>";


}
<div>
  <span>Base</span>
  <input type="text" id="base" value="10000" />
</div>
<div>
  <span>Percentage</span>
  <input type="text" id="per" value="8" />
</div>

<button onclick="myFunction()">Click</button>

<p id="demo"></p>

Вы также можете использовать итерации в коде, либо выбрать из html, как показано ниже.

function myFunction() {
  var l = 12;
  var a = Number(document.getElementById("base").value);
  var years = Number(document.getElementById("years").value);
  var r = "";
  for (var i = 0; i < years; i++) {
    if(i) {
      var hk = (a * document.getElementById("per").value) / 100;
      a += Number(hk);
    }
    
    for (var j = 0; j < l; j++) {
      r += a + " ";
    }
    r += "<br/>";
  }
  document.getElementById("demo").innerHTML += r;
}
<div>
  <span>Base</span>
  <input type="text" id="base" value="10000" />
</div>
<div>
  <span>Percentage</span>
  <input type="text" id="per" value="8" />
</div>
<div>
  <span>Years</span>
  <input type="text" id="years" value="4" />
</div>

<button onclick="myFunction()">Click</button>

<p id="demo"></p>
0 голосов
/ 21 февраля 2019

Я думаю, что вы ищете это

function myFunction() {
  var l = 12;
  var cycle = document.getElementById("cycle").value;
  var a = document.getElementById("base").value;
  var hk = parseFloat((a * document.getElementById("per").value) / 100);
  for (let j = 0; j < cycle; j++) {
    document.getElementById("demo").innerHTML += "<br>For next 12 months<br>"
    a = Number(a) + Number(hk);
    hk = parseFloat((a * document.getElementById("per").value) / 100);
    for (var i = 1; i <= l; i++) {

      document.getElementById("demo").innerHTML += '<br>' + a;

    }
  }
}
<div>
  <span>Base</span>
  <input type="text" id="base" value="10000" />
</div>
<div>
  <span>Percentage</span>
  <input type="text" id="per" value="8" />
</div>
<div>
  <span>Cycles</span>
  <input type="text" id="cycle" value="4" />
</div>

<button onclick="myFunction()">Click</button>

<p id="demo"></p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...