function antalAr(lan, amortering)
{
totalAmorteringAr = amortering * 12;
for( var svar = 0; totalAmorteringAr * svar <= lan; svar++){}
return svar;
}
var tal1 = antalAr(1000000,1000);
document.writeln("Ett lån på 1000000 kr är betalt efter " + Math.ceil(tal1) + " år om amorteringen är 1000 kr/mån.");
var tal2 = antalAr(1500000,500);
document.writeln("Ett lån på 1500000 kr är betalt efter " + Math.ceil(tal2) + " år om amorteringen är 500 kr/mån.");
应该打印出正确的答案:
Ettlånpå1000000krärbetaltefter84åromamorteringenär1000kr /mån。 Ettlånpå1500000krärbetaltefter250åromamorteringenär500kr /mån。
但是它会增加一年:Ettlånpå1500000krärbetaltefter 251 åromamorteringenär500kr /mån
为什么吗
答案 0 :(得分:4)
使用外语调试代码非常困难,但在我看来,你增加的次数太多了:
for( var svar = 0; totalAmorteringAr * svar <= lan; svar++){}
如果您将<=
更改为<
,您的代码应该有效。
答案 1 :(得分:0)
Math.ceil应该是Math.floor。
ceil向上,而不是向下,这意味着它将“结束”这一年。