我需要得到一个值的总和

时间:2014-01-31 06:51:31

标签: javascript

我这里有大脑抽筋

我有一个计算每年10,000美元投资价值的函数。我使用一个保持年回报率的数组。换言之,在十年期间,一个人将投入10万美元。第一个10,000美元将投资10年,下一个10,000美元将投资9年等等,最后的10,000美元将只投资一年。投资在每年年初进行,回报率在每年年底计算。

这是我的代码

//这是包含回报率的数组

var values = [32.60,7.44,-10.46,43.72,12.06,0.34,26.64,-8.81,22.61,16.42]

var rate; var FV; var PV;

function doit() {
   var result=document.getElementById("result");
    for (j=0;j<values.length;j++){
    PV=10000;
      for (i=j;i<values.length;i++){
      rate = values[i]/100;
      FV = (PV * (1+rate));
      PV = FV;
      }
    PV=Number(PV).toFixed(2);
    result.innerHTML+="$" + PV + "<br>";
    }
 }

这是html输出:

$ 33981.31 - (10年后10,000美元的价值)

$ 25626.93 - (9年后下一个10,000美元的价值)

$ 23852.32 - (8年后下一个$ 10,000的价值)

$ 26638.73 - (等)

$ 18535.16

$ 16540.39

$ 16484.34

$ 13016.69

$ 14274.26

$ 11642.00 - (1年后最后10000美元的价值)

这是由我的循环

生成的变量PV的值

我的问题是如何获得这些价值的总和,以显示投资的总价值,即每年投资10,000美元十年的结果。实际结果是$ 200,592.13

TIA

3 个答案:

答案 0 :(得分:3)

您可以在函数上方声明一个总变量:

var total = 0 ;
function doit()
{ 
    ...
    total += PV; // (this is at the end of the function)   
}
function gettotal()
{
    result.innerHTML += "Total: $" + total;
}

答案 1 :(得分:0)

你想看到总金额吗?看起来很简单。

var sum = 0;

and inside cycle: sum = sum + PV

我觉得你需要别的东西

答案 2 :(得分:0)

使用+=运算符追加循环外的变量。为了获得最高的准确性和速度,您应该在使用toFixed作为两个楼层并将其转换为字符串之前附加您的号码。

function doit() {
   var sum = 0;
   for (j=0;j<values.length;j++){
      ...
      sum += PV; // Add to sum, best to do before flooring it
      PV=Number(PV).toFixed(2);
   }
   return sum;
}