Javascript 对于循环增量,小数点在1.42处停止,而不是继续,直到计算完成

Javascript 对于循环增量,小数点在1.42处停止,而不是继续,直到计算完成,javascript,Javascript,我在JavaScript中使用for循环开发了一个简单的平方根计算器 但是,我注意到,每当循环使用console.logi.toFixed2迭代时,为I输出每个值时,每次计数都会停止在1.42 下面是JavaScript: 感谢所有的帮助, 谢谢 编辑:我注意到如果我输入1,它将输出到0.99,而不是1.42 编辑2:我测试了易卜拉欣的新答案,它有点奏效了。它现在停在3.17,而不是1.42。然而,我注意到在测试之后,我的笔记本电脑风扇会全速旋转,我的CPU负载会在短时间内达到100%,然后降低

我在JavaScript中使用for循环开发了一个简单的平方根计算器

但是,我注意到,每当循环使用console.logi.toFixed2迭代时,为I输出每个值时,每次计数都会停止在1.42

下面是JavaScript:

感谢所有的帮助, 谢谢

编辑:我注意到如果我输入1,它将输出到0.99,而不是1.42

编辑2:我测试了易卜拉欣的新答案,它有点奏效了。它现在停在3.17,而不是1.42。然而,我注意到在测试之后,我的笔记本电脑风扇会全速旋转,我的CPU负载会在短时间内达到100%,然后降低到40%左右。可能是笔记本电脑无法处理一致的for循环吗?如果是这样,还有什么更好的替代方案?谢谢


小提琴手:

我对此表示怀疑,但这始终是个错误。toFixed返回一个我知道的字符串,inp.value是一个我也知道的字符串。但我认为既然>只处理数字,解释程序就会将它们的值用作数字,并进行正确的比较。但我错了。因此,要强制解释器将它们视为数字,请使用number或parseFloat的显式方式,如下所示:

else if(Number(check) > Number(inp.value)){
    alert("Value could not be found.");
    break;
}
else if(+check > +inp.value){
    alert("Value could not be found.");
    break;
}
或者像这样使用一元+的隐式方式:

else if(Number(check) > Number(inp.value)){
    alert("Value could not be found.");
    break;
}
else if(+check > +inp.value){
    alert("Value could not be found.");
    break;
}

等式检查也是如此。

你的inp.value值是多少?@fanyosilian不管用户输入什么。不管用户输入什么,你都停在1.42?@fanyosilian是的!我刚试过你的代码1.42上还没停?给出一些输入和输出!试着在你的输入中输入10,它将在3.17停止!我要试一试!谢谢你的回答,我现在正在尝试,它半修复了我的问题,现在是3.17,而不是1。42@GROVER. 在任何给定的输入@格罗弗。如果你真的很固执地想要重新发明平方根函数,那么检查这两个链接:和。我希望你的头发不要变白!