我有这个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);
}
我需要firsttrans
和secondtrans
作为字符串,因为我的代码中包含其他内容,但关键是此alert(ans)
没有给出数字。
答案 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/b
与y = 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>