当我写下if条件时,它不起作用,我不能每30天将钱增加100美元。
<script>
var money = 100.00; // my initial money
var rate = 1.0005; // my Interest rate per day (0.05% or 1.0005x)
for (i = 1; i <= 365; i++) {
if (i % 30 == 0) { // Each 30 days I add 100$ to my bank
money += 100.00;
}
money = money * rate; // I give money from interest rate
money = money.toFixed(2); // Round the number
document.write("Day " + i + " : <strong>" + money + " $ </strong><br>"); // Write for visual purpose
}
</script>
答案 0 :(得分:1)
您正在使用toFixed
在每次迭代结束时将值转换为字符串。
当你在乘法中使用字符串时,它将隐式地转换回一个数字,因为乘法不适用于字符串。但是,当您尝试每月添加100个时,+=
opreator将执行字符串连接而不是添加,因此您最终得到的值为"101.45100"
,而不是201.45
。
不要将变量money
转换为字符串,而是将该字符串放在单独的变量中以供显示:
var money = 100.00; // my initial money
var rate = 1.0005; // my Interest rate per day (0.05% or 1.0005x)
for (i = 1; i <= 365; i++) {
if (i % 30 == 0) { // Each 30 days I add 100$ to my bank
money += 100.00;
}
money = money * rate; // I give money from interest rate
var m = money.toFixed(2); // Round the number
document.write("Day " + i + " : <strong>" + m + " $ </strong><br>"); // Write for visual purpose
}