js 關於字符串轉數字及數字保留位數的控制


1.parseInt()和parseFloat()兩個轉換函數,將字符串轉換成相應的數字。

  1.parseInt()

    parseInt進行轉換時,將字符串轉成相應的整數。浮點數以后的數字都不要了。

    parseInt("1234blue");  //returns  1234 
    parseInt("22.5");  //returns  22 
    parseInt("blue");  //returns  NaN

    

    另外parseInt轉換時是包含有基模式的,按照指定的轉換進制進行相應的整數轉換的,基數是由第二個參數傳入的。

    parseInt("AF",  16);  //returns  175 ---16進制
    parseInt("10",  2);  //returns  2 ---------2進制
    parseInt("10",  8);  //returns  8 ---------8進制
    parseInt("10",  10);  //returns  10 ------10進制

    需要注意的是,如過字符串的第一個字符時0,則最好傳入指定的基數,不然會意外的轉成八進制整數。

    parseInt("010");  //returns  8 
    parseInt("010",  8);  //returns  8 
    parseInt("010",  10);  //returns  10

  2.parseFloat()

    parseFloat()方法與parseInt()方法的處理方式相似。 
    使用parseFloat()方法的另一不同之處在於,字符串必須以十進制形式表示浮點數,parseFloat()沒有基模式。

    下面是使用parseFloat()方法的示例: 
    parseFloat("1234blue");  //returns  1234.0 
    parseFloat("0xA");  //returns  NaN 
    parseFloat("22.5");  //returns  22.5 
    parseFloat("22.34.5");  //returns  22.34 
    parseFloat("0908");  //returns  908 
    parseFloat("blue");  //returns  NaN

2.利用js變量弱類型轉換

  即js在執行數字運算的時候,除+以外的符號,在進行運算時,如果參與運算的數字是字符的形式,js會自動將其轉成數字。

  舉個小例子,例子中采用數字與0的減號運算,自動將字符串轉成數字。 
    var  str= '012.345 '; 
    var  x  =  str-0; 
    x  =  x*1; 

  上例利用了js的弱類型的特點,只進行了算術運算,實現了字符串到數字的類型轉換,不過這個方法還是不推薦的

  同時,也可以反過來使用,將數字轉成字符串,數字在與字符進行+號運算時,執行的是字符串拼接,會將數字轉成字符串進行拼接。

    例如

    var num=11225;

    var str=num+‘’;

3.在對含有小數的數據進行處理的時候,往往需要保留指定的小數位數。針對保留一定位數的小數的方法有很多種。以下以保留兩位小數列舉幾種。

  1.比較新的方法toFixed,含有四舍五入的運算(IE 5.5+才支持)。

    用法:2.453255.toFixed(2)  //2.45

       2.447088.toFixed(2) //2.45

  2.利用下取正,按照指定位數轉成整數,再轉回去,不包含四舍五入。

    Math.floor(15.7784514000 * 100)/100 //15.77   注:如果需要此方法實現四舍五入,配合上取整,和一定的邏輯進行實現。

  3.另外幾個對小數進行取整的API。

    parseInt();  //丟棄小數部分,取整數部分,相當於下取整,Math.floor();

    Math.ceil(5/2);    //向上取整,小數只要存在,就整數部分+1;

    Math.round(5/2);   //四舍五入取整。

    Math.floor(5/2);   //向下取整,小數直接去掉,小數部分無論多大,整數部分都不+1。

  4.另外還可以通過字符串控制,正則表達式匹配進行保留位數的控制,方法比較多,比較靈活。這里不再總結。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM