【发布时间】: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