为什么这个javascript代数方程给出了NaN的结果?

时间:2017-07-20 18:02:54

标签: javascript function math algebra

我有这个javascript代码,它应该解决x和y,但它给出的结果是NaN。

function calculate(x,y){
                var firsttrans="1";
                var secondtrans="2";
                var a=parseInt(firsttrans, 10);
                var b=parseInt(secondtrans, 10);
                var y=x*a/b;
                var ans=parseInt(y, 10);
                alert(ans);
            }

我需要firsttranssecondtrans作为字符串,因为我的代码中包含其他内容,但关键是此alert(ans)没有给出数字。

2 个答案:

答案 0 :(得分:0)

不能保证你的x和y是整数或浮点数,所以你的操作var y = x * a / b;将失败。你需要确保x和y是整数或浮点数。

答案 1 :(得分:0)

您的代码运行正常(在Chrome中测试)。我尝试了calculate(8,3);,答案是 4 而不是 NaN ,所以你要么拖钓,否则你不会告诉我们一个重要的细节重新创建NaN问题......

您的所有代码都只是取x值并将其减半,然后将该减半的结果设置为y的新值。为什么乘以自己的一半会出现NaN错误?我的意思是y = x * a/by = x/2 ...

完全相同

在通常的浏览器中测试此HTML代码,然后针对Chrome:

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
function calculate(x,y){
                var firsttrans="1";
                var secondtrans="2";
                var a=parseInt(firsttrans, 10);
                var b=parseInt(secondtrans, 10);
                var y=x*a/b;
                var ans=parseInt(y, 10);
                //alert("result is : " + ans);

                return ans;
            }

document.getElementById("demo").innerHTML = "result is : " + calculate(8,3);
</script>

</body>
</html>