Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计算器的结果很奇怪_Javascript_Calculator - Fatal编程技术网

Javascript 计算器的结果很奇怪

Javascript 计算器的结果很奇怪,javascript,calculator,Javascript,Calculator,我的计算器输出了一些奇怪的结果,我已经将其添加到JSFIDLE中,供大家快速查看 如果我把4000作为本金,1年,1%的利息,那么本金和利息重复相同的值,它也会每隔一个月跳过一次,但是如果我把利率设置为20%,它会开始正确地倒计时本金和利息的结果。这有点奇怪 我认为问题在于intr变量,但我不太确定如何解决它 function totalF(){ var body = document.body; var tbl = document.createElement('tabl

我的计算器输出了一些奇怪的结果,我已经将其添加到JSFIDLE中,供大家快速查看

如果我把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");
        }
    }
}
函数totalF(){
var body=document.body;
var tbl=document.createElement('table');
tbl.setAttribute('id','results');
var tblBody=document.createElement('tbody');
var tndiv=document.getElementById('tdcontainer');
对于(var j=1;j0&&intr>0){
if(tndiv!=null){
var cell=document.createElement('td');
var cell2=document.createElement('td');
var cell3=document.createElement('td');
var ndiv=圆形(温度);
var intr=整轮((每月*付款)-本金);
var monthlyn=j;
cell.innerHTML=ndiv;
cell2.innerHTML=monthlyn;
cell3.innerHTML=intr;
子行(单元格);
第2行为子行(第2单元格);
第3行为子行(第3单元格);
j++;
}
温度-=每月;
intr-=每月;
tblBody.appendChild(世界其他地区);
}
tbl.附肢儿童(tblBody);
附肢儿童(tbl);
tbl.setAttribute(“边框”、“1”);
}
}
}
改用
document.getElementById('loandata')。payment
。对其他表单元素执行相同的操作,或者更好地使用
var form=document.getElementById('loanada')然后
表单.付款

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

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

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

请在此处张贴代码。它是关于在你的提琴消失两年后帮助你和其他人。@user874185,我在使用JSFIDLE时出错,
Uncaught ReferenceError:calculate未定义
。这是JSFIDLE的“onload wrapping”问题。与他的代码无关。我不认为这会有什么不同。我不太确定这是否正确,第86行在totalF()函数中,并且在函数的末尾,你能不能更具体一点,把它放在哪里?我想你不太明白我在说什么,如果你看这个链接,这是计算器的结果,它的值是本金:4000年:1利息:1%,然后是利息20%,其余的都一样。请快看一下。我还认为这可能是我的问题,在totalF()函数的末尾,我有intr-=monthly;如果我把它取出来,本金开始对我输入的任何利息值进行正确的倒计时,但是利息始终保持不变。我还更新了我的代码,以便您可以在JSFIDLE中进行测试
<div id="visualization" style="width: 750px;></div>