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