parseInt(0.08)
дает 0
, поэтому математика ничего не делает. Вам не нужно анализировать свои переменные здесь, так как вы сами определяете их. Вам действительно нужно только анализировать, если вы читаете данные с пользовательского ввода.
Также ваша математика для интересов плоха. Вам нужно рассчитать проценты по процентам.
Этот сценарий дает правильных * выхода:
var invest;
var rate;
var amount;
rate = 0.08;
invest = 100000;
amount = invest;
for(var i = 1; i <= 10; i++){
amount = amount * (1.0 + rate);
document.write("Annual Account Balance for Year " + i + " = " + amount + "<br>");
}
выход:
Annual Account Balance for Year 1 = 108000
Annual Account Balance for Year 2 = 116640.00000000001
Annual Account Balance for Year 3 = 125971.20000000003
Annual Account Balance for Year 4 = 136048.89600000004
Annual Account Balance for Year 5 = 146932.80768000006
Annual Account Balance for Year 6 = 158687.43229440006
Annual Account Balance for Year 7 = 171382.42687795206
Annual Account Balance for Year 8 = 185093.02102818823
Annual Account Balance for Year 9 = 199900.4627104433
Annual Account Balance for Year 10 = 215892.49972727877
// this would be the output with your bad math:
Annual Account Balance for Year 1 = 108000
Annual Account Balance for Year 2 = 115999.99999999999 // float funny business, beware!
Annual Account Balance for Year 3 = 124000
Annual Account Balance for Year 4 = 132000
Annual Account Balance for Year 5 = 140000
Annual Account Balance for Year 6 = 148000
Annual Account Balance for Year 7 = 156000
Annual Account Balance for Year 8 = 164000
Annual Account Balance for Year 9 = 172000
Annual Account Balance for Year 10 = 180000
* Так как мы имеем дело со значениями с плавающей точкой здесь быть очень осторожен, это ограниченная точность.
Примечание '100 000' оценивает' 100' и возвращает '000', что является синтаксической ошибкой в строгом режиме (может быть' 0' в нестрогом режиме). – Oriol
Оценить, инвестировать, и я не строки .. почему вы их разбираете? –