javascript基礎知識梳理-Number與String之間的互相轉換
阿新 • • 發佈:2019-01-24
<!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>