2017-07-20 58 views
-4

我有這個JavaScript代碼,它應該爲x和y解決,但它給出的結果是NaN。爲什麼這個javascript代數方程給出了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)不給一個數字。

+8

什麼是'x'?你爲什麼重新聲明'y'? – str

+2

輸入什麼使用? – aalcutt

+3

爲什麼你定義'var y'如果它已經是一個參數? – Surreal

回答

0

不能保證你的x和y是整數或浮點數,所以你的操作var y = x * a/b;將失敗。你需要確保x和y是整數或浮點數。

0

您的代碼正常工作(在Chrome中進行了測試)。我試圖calculate(8,3);和答案是沒有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> 
相關問題