2016-03-28 60 views
0

我是新手在JS和我不能理解這件事情..當我在第一個字段輸入任何數字,沒有什麼會出現在下一個領域,但代碼必須正常工作..什麼是此代碼中的錯誤?JS數字方法不工作

<html> 
    <head> 
    <title> Number methods </title> 
    </head> 
    <body> 
    <table border="2px" width="500px" height="400px" align="center"> 
    <tr> 
     <td align="center" colspan="2"> 
      <p> Enter a number </p> 
     </td> 
     <td align="center" colspan="2"> 
     <input type="text" id="number"> 
     </td> 
      </tr> 
      <tr> 
      <td align="center" colspan="2"> Result </td> 
      <td align="center" colspan="2"> <input type="text" id="result">      </td> 
    </tr> 
    <tr>  
      <td align="center"> <input type="button" onClick="string();" value="String"> </td> 
      <td align="center"> <input type="button" onClick="precision();" value="Precision"> </td> 
      <td align="center"> <input type="button" onClick="expo();" value="Exponential"> </td> 
      <td align="center"> <input type="button" onClick="fixed();" value="Fixed"> </td> 

    </tr>   
    </tr> 
</table> 

    <script> 
    function fixed() 
    { 

     var num = document.getElementById("number").value; 

     var res = document.getElementById("result"); 
      res.value = num.toFixed(2); 

    } 

+0

只能做一個JSFiddle,這樣會很容易 –

+0

呵呵對不起會下次做:) –

+0

@SiddharthPrabhu你爲什麼不接受任何答案? –

回答

3

的字符串沒有一個叫.toFixed在其原型功能,

​​

你必須將它轉化爲一個數字,這樣你就可以訪問它的功能.toFixed()。既然你在關心小數點,我建議你使用parseFloat將該字符串轉換爲數字。

與明智一樣,您也可以使用parseInt(str),Number(str),+str將字符串str轉換爲數字。

+0

哦,它的工作,Thx的解釋:) –

+0

@SiddharthPrabhu很高興幫助! :) –

+1

@SiddharthPrabhu Dei回答啊接受潘努達。 –

1

num變量是一個字符串。 .toFixed()只是一個數字對象的方法,而不是一個字符串。

您必須先將num轉換爲數字,然後才能對其調用.toFixed()。下面是一個使用了+運營商轉換爲數字代碼的一個修正版本:

function fixed() { 
    // use the + here to convert to a number 
    var num = +document.getElementById("number").value; 
    var res = document.getElementById("result"); 
    res.value = num.toFixed(2); 
} 

如果你學會了在瀏覽器的調試控制檯看,它應該告訴你到底是什麼的代碼的錯誤行開啓並給了你一個很好的主意是什麼導致了錯誤。