【问题标题】:I need to get a sum of values我需要得到一个值的总和
【发布时间】:2014-01-31 15:06:53
【问题描述】:

我的脑抽筋了

我有一个函数可以计算每年 10,000 美元投资的价值。我使用一个保存年回报率的数组。换句话说,在十年内,一个人将投资 100,000 美元。前 10,000 美元将投资 10 年,接下来的 10,000 美元将投资 9 年,以此类推,最后 10,000 美元将仅投资一年。每年年初进行投资,每年年底计算收益率。

这是我的代码

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

变量值 = [32.60,7.44,-10.46,43.72,12.06,0.34,26.64,-8.81,22.61,16.42]

变率; 变量 FV; 变量 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

【问题讨论】:

  • 嗨,Maxim,我已经试过了 - 但输出是垃圾。总和变为 033981.3125626.9323852.3226638.7318535.1616540.3916484.3413016.6914274.2611642.00
  • 您需要在toFixed(2) 之前将其转换为字符串。您所看到的是由您的所有数字组成的连接字符串。
  • OK - 我让它工作了,但我不得不使用:sum = Number(sum) + Number(PV) - 但我不知道为什么我必须使用 Number 函数?! - 感谢所有快速回复!我会尝试建议的其他方式。
  • 谢谢乔治 - 这解释了它

标签: javascript


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您想查看总金额吗?看起来很简单。

    var sum = 0;
    
    and inside cycle: sum = sum + PV
    

    我觉得你需要别的东西

    【讨论】:

    • 当然你应该在循环之外定义 sum 变量))
    【解决方案3】:

    使用+= 运算符附加到循环外的变量。为了获得最大的准确性和速度,您应该在使用 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 2021-12-04
      • 2021-09-18
      • 2021-06-06
      • 2014-09-28
      相关资源
      最近更新 更多