- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Number和String之間的互相轉換</title>
- <script type="text/javascript">
- //將Number數字轉換成String字符串
- //第一種方法是使用String()函數,該方法有局限性,即無法將某個數值轉換成不同進制的,也無法選取有效數字等等
- var num = 123456.7897;
- var str = String(num);
- console.log("String(" + num + ") = " + str);
- //第二種方法是使用Number對象的toString()方法,toFixed()方法,toExponential()方法,toPrecision()方法
- //toString()方法默認將Number轉換成十進制數
- str = num.toString();
- console.log(num + ".toString() = " + str);
- //toString(radix)方法可以帶一個參數radix,表示將Number按照提供的進制轉換,進制范圍2-36,如果超出這個范圍將報錯。
- str = num.toString(2);
- console.log(num + ".toString(2) = " + str);
- //toFixed()方法,如果不提供參數的話默認是精確到個位,四舍五入法,不使用指數計數法
- str = num.toFixed();
- console.log(num + ".toFixed() = " + str);
- //toFixed(float)方法可以帶一個參數,表示精確到小數點后面第幾位,如果參數為0,和不提供參數功能相同
- str = num.toFixed(1);
- console.log(num + ".toFixed(1) = " + str);
- //toExponential方法,該方法使用指數計數法轉換數值,小數點前只有一位,小數點后面的位數由參數指定,默認情況下不會截取位數
- str = num.toExponential();
- console.log(num + ".toExponential() = " + str);
- //toExponential方法帶參數代表小數點后保留的位數
- str = num.toExponential(1);
- console.log(num + ".toExponential(1) = " + str);
- //toPrecision()方法按照參數指定的有效數字個數轉換數值,默認不給參數的情況下保留所有有效數字位
- str = num.toPrecision();
- console.log(num + ".toPrecision() = " + str);
- //toPrecision()可以帶一個參數,代表有效數字位數,如果該位數小於原數的整數部分位數,則用指數形式表示,否則用非指數形式。
- str = num.toPrecision(6);
- console.log(num + ".toPrecision(6) = " + str);
- //將String字符串轉換成Number也有兩種方式
- //第一種方式仍然使用顯示轉換函數Number,可以轉換整數和浮點數,但是這種方法不允許待轉換的字符串中出現任何非法字符,包括空格,如果存在非法字符,將得到結果NaN。
- str = "12 3";
- num = Number(str);
- console.log("Number(" + str + ") = " + num);
- //第二中方式是使用全局函數parseInt()和parseFloat()
- //parseInt()方法只能解析整數,會忽略所有的前導空白字符,直到解析到某個非法非空白字符為止,小數點在parseInt()被認為是非法字符,如果中間出現空格,也會被認為是非法字符。
- str = "a .1 1.8";
- num = parseInt(str);
- console.log("parseInt(" + str + ") = " + num);
- //parseInt()方法的第二個參數是進制,默認情況下回以十進制去解析。
- str = "0xff";
- num = parseInt(str, 16);
- console.log("parseInt(" + str + ",16" + ") = " + num);
- //parseFloat()方法可以解析整數和浮點數,它會將小數點解析成合法字符,如果第一個字符就是小數點,則會被解析成0.xxx,但是parseFloat()方法不能更換進制 ,得明確告訴它是多少進制,比如十六進制加0x,實踐證明,明確告訴也沒用
- //0xff會被解析成0...,parseInt()方法帶不帶第二個參數都能解析成255
- str = "0xff";
- num = parseFloat(str);
- console.log("parseFloat(" + str + ") = " + num);
- </script>
- </head>
- <body>
- </body>
- </html>
http://blog.csdn.net/dc15822445347/article/details/23288367