计算器结果很奇怪

时间:2012-04-17 21:09:45

标签: javascript calculator

我的计算器出了一些奇怪的结果我已经把它添加到jsfiddle中让你们快速浏览一下。

如果我把4000作为我的本金和1年,我把1%的利息重复相同的本金和利息价值,它也会每隔一个月跳过一次,但是如果我把利率设为20%,它就会开始正确地倒数本金和利息的结果。它有点奇怪。

我认为问题在于intr变量,但我不太确定如何修复它。

   function totalF(){
    var body = document.body;
    var tbl = document.createElement('table');
    tbl.setAttribute('id', 'results');
    var tblBody = document.createElement('tbody');
    var tndiv = document.getElementById('tdcontainer');

    for (var j = 1; j < payments; j++){
    var row = document.createElement('tr');

        temp = round(principal);
        intr = round((monthly * payments) - principal);
    while(temp>0 && intr>0){    
        if(tndiv != null){
               var cell = document.createElement('td');
               var cell2 = document.createElement('td');
               var cell3 = document.createElement('td');            

               var ndiv =  round(temp);
               var intr = round((monthly * payments) - principal);
               var monthlyn = j;

                cell.innerHTML = ndiv;
                cell2.innerHTML = monthlyn;
                cell3.innerHTML = intr;

                row.appendChild(cell);
                row.appendChild(cell2);
                row.appendChild(cell3);

                j++;
            }

            temp-=monthly;
            intr-=monthly;
            tblBody.appendChild(row);

            }
        tbl.appendChild(tblBody);
        body.appendChild(tbl);
        tbl.setAttribute("border", "1");
        }
    }
}

1 个答案:

答案 0 :(得分:1)

Timestamp: 17.04.2012 23:13:22
Error: document.loandata.payment is undefined
Source File: http://fiddle.jshell.net/_display/
Line: 86

请改用document.getElementById('loandata').payment。对其他表单元素执行相同操作,甚至更好地使用var form = document.getElementById('loandata');然后使用form.payment等。

您还尝试在其他地方以无效方式访问元素。如果元素具有ID,请使用document.getElementById('yourId')来访问它,而不是document.yourIddocument.someElement.yourId

除此之外,您需要在分号后添加缺少的引号:

<div id="visualization" style="width: 750px;></div>