1. 程式人生 > >javascript基礎知識梳理-Number與String之間的互相轉換

javascript基礎知識梳理-Number與String之間的互相轉換

<!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>