使用JS增加模数条件下的值

时间:2014-11-09 23:39:56

标签: javascript html

当我写下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>

1 个答案:

答案 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
}