取整:
向下取整Math.floor(),向上取整Math.ceil(),四舍五入Math.round()),保留有效數位n.toFixed(),產生大於等於0小於1的隨機數Math.random()
功能 | 函數 | 示例 | |
整型 | 向下取整 | Math.floor() | Math.floor(1.1)==>1 |
向上取整 | Math.ceil() | Math.ceil(1.1) ==>2 | |
四舍五入 | Math.round() | Math.round(1.1)==>1 | |
Math.round(1.6)==>2 | |||
浮點型 | 保留有效數位 | n.toFixed() | 1.442.toFixed(2)==>1.44 |
1.446.toFixed(2)==>1.45 | |||
隨機數 | Math.random() | Math.random()==>0.38078270980122775 |
字符串轉換成數字:
將字符串轉換成數字,用parseInt()函數和parseFloat()函數,isNaN()函數來檢測 轉換后的類型
var i = parseInt('abc'); if (isNaN(i)) { alert('NaN value'); }
注意:
- 只有字符串中的第一個數字會被返回。
- 開頭和結尾的空格是允許的。
- 如果字符串的第一個字符不能被轉換為數字,那么 parseInt() 和 parseFloat() 都會返回 NaN。
- 在字符串以"0"為開始時舊的瀏覽器默認使用八進制基數。ECMAScript 5,默認的是十進制的基數。
ParseInt:結果返回一個整數
如果 string 以 "0x" 開頭,parseInt() 會把 string 的其余部分解析為十六進制的整數。如果 string 以 0 開頭,那么 ECMAScript v3 允許 parseInt() 的一個實現把其后的字符解析為八進制或十六進制的數字。如果 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析為十進制的整數
如果解析不到數字,則將返回一個NaN的值,可以用isNaN()函數來檢測;
parseInt("10"); //返回 10 parseInt("19",10); //返回 19 (10+9) parseInt("11",2); //返回 3 (2+1) parseInt("17",8); //返回 15 (8+7) parseInt("1f",16); //返回 31 (16+15) parseInt("010"); //未定:返回 10 或 8(在谷歌,火狐,360極速瀏覽器上測試的結果均為10)
parseFloat:結果返回一個浮點數
如果在解析過程中遇到了正負號(+ 或 -)、數字 (0-9)、小數點,或者科學記數法中的指數(e 或 E)以外的字符,則它會忽略該字符以及之后的所有字符,返回當前已經解析到的浮點數。同時參數字符串首位的空白符會被忽略。
console.log(parseFloat("10")) //10 console.log(parseFloat("10.00")) //10 console.log(parseFloat("10.33")) //10.33 console.log(parseFloat("34 45 66")) //34 console.log(parseFloat(" 60 ")) //60 console.log(parseFloat("40 years")) //40 console.log(parseFloat("He was 40")) //NaN console.log(parseFloat("3.14")) //3.14 console.log(parseFloat("314e-2")) //3.14 console.log(parseFloat("0.0314E+2")) //3.14 console.log(parseFloat("3.14more n")) //3.14 console.log(parseFloat("-3.14")) //-3.14 console.log(parseFloat("=3.14")) //NaN console.log(parseFloat("314e-2")) //NaN console.log(parseFloat("e3.14")) //NaN
js數字轉換成字符串
將字符串轉換成數字,得用到String類的toString方法
var i = 10; var s = i.toString(); alert(typeof s); //將輸出 string----typeof i number
js數字與字符串的區別
js的數字的加法與字符串的連接都是 + 符號, 所以究竟是加還是字符串的連接就取決與變量的類型。
var a = 'abc' + 'def'; //abcdef,字符串與字符串是連接 var a = 10 + 5; //15,數字是加 var a = 'abc' + 23; //abc23,字符串與數字,自動將10轉換成字符串了 var a = 'abc' + 10 + 20 + 'cd'; //abc1020cd var a = 10 + 20 + 'abc' + 'cd'; //30abccd,可以數字加的先數字加,然后再連接 var a = 10 + '20'; //1020 string var a = 10 - '20'; //-10 number var a = '20' + 10; //20100 string ar a = '20' - 10; //10 number
如果從html頁面元素得到的值,想按數字加,就需要先轉換為數字,因為從頁面得到的值默認是字符串