Доброго времени.
Пытаюсь сделать калькулятор прибыли с реинвестом.
То есть задача такая: пользователь задает сумму, проценты (в день) и срок (в месяцах). Происходит вычисление:
1. Вычисляем общую прибыль за первый месяц - (сумма*процент)+сумма;
2. Полученный результат принимаем за сумму и повторяем на заданное количество месяцев.
Пример:
Вкладываем 50 долларов на 3 месяца под 0.5% в день (15% в месяц).
1. (50*0.15)+50=57,5 //результат за первый месяц
2. (57,5*0,15)+57,5=66,125 //результат за второй месяц
3. (66,125*0,15)+66,125=76,04375 //результат за третий месяц
Итог: 76 долларов (округляем).
Вот как я пытаюсь это реализовать:
<script>
function summ(){
var summa= document.getElementById('summa').value;
var srok= document.getElementById('srok').value;
var proc= document.getElementById('proc').value;
proc = proc*30; //переводим дневной процент в месячный
if (summa!="" && srok!="" && proc!="" && summa % 50 == 0){ //проверяем, что все поля заполнены и сумма кратна 50
var i = 0;
while (i < srok) { //цикл
summa = ((summa*proc)+summa); //формула
//alert(summa);
i ++
}
var result_totall=Math.floor(summa); //округляем результат
document.getElementById('totall').innerHTML = " За весь период :" + result_totall; //выводим результат на экран
} else {
alert( 'Сумма должна быть кратна 50' ); //если сумма не кратна 50 или поля не заполнены
}
}
function onlyDigits() { //проверяем, что введены цифры
this.value = this.value.replace(/[^\d]/g, "");
}
document.querySelector(".onlyDigits").onkeyup = onlyDigits
</script>
<div id="some"></div><br>
<div id="totall"></div><br>
<input type="text" name="summa" id="summa" class = "onlyDigits" value=""><br>
<input type="text" name="srok" id="srok" class = "onlyDigits" value=""><br>
<input type="text" name="proc" id="proc" value=""><br>
<input type="button" onclick="summ();" value="raschet" name="raschet">
В итоге оно считает, но какую-то чушь. По шагам:
1. 1550
2. 4651550
3. 13954654651550
...
n. NaNInfinity
Результат: NaN
В js я, к сожалению, почти не умею, поэтому прошу помощи: в чем заключается ошибка?
Заранее спасибо!