您好,登錄后才能下訂單哦!
這篇文章主要介紹“javascript如何將數(shù)據(jù)轉(zhuǎn)換為整數(shù)”,在日常操作中,相信很多人在javascript如何將數(shù)據(jù)轉(zhuǎn)換為整數(shù)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”javascript如何將數(shù)據(jù)轉(zhuǎn)換為整數(shù)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
javascript轉(zhuǎn)換整數(shù)的方法:1、使用parseInt()函數(shù),語(yǔ)法“parseInt("要轉(zhuǎn)換的值")”。2、利用位操作符,例“~~123.45”。3、使用“Math.floor(值)”與“Math.ceil(值)”語(yǔ)法。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
方法1:parseInt()函數(shù)
parseInt() 是一個(gè)全局方法,它可以把值轉(zhuǎn)換為整數(shù)。轉(zhuǎn)換的過(guò)程如下:
先解析位置 0 處的字符,如果不是有效數(shù)字,則直接返回 NaN。
如果位置 0 處的字符是數(shù)字,或者可以轉(zhuǎn)換為有效數(shù)字,則繼續(xù)解析位置 1 處的字符,如果不是有效數(shù)字,則直接返回位置 0 處的有效數(shù)字。
以此類推,按照從左到右的順序,逐個(gè)分析每個(gè)字符,直到發(fā)現(xiàn)非數(shù)字字符為止。
parseInt() 將把前面分析合法的數(shù)字字符全部轉(zhuǎn)換為數(shù)值并返回。
console.log(parseInt("123abc")); //返回?cái)?shù)字123 console.log(parseInt("1.73")); //返回?cái)?shù)字1 console.log(parseInt(".123")); //返回值NaN
浮點(diǎn)數(shù)中的點(diǎn)對(duì)于 parseInt() 來(lái)說(shuō)屬于非法字符,因此不會(huì)轉(zhuǎn)換小數(shù)部分的值。
如果是以 0 開(kāi)頭的數(shù)字字符串,則 parseInt() 會(huì)把它作為八進(jìn)制數(shù)字處理:先把它轉(zhuǎn)換為八進(jìn)制數(shù)值,然后再轉(zhuǎn)換為十進(jìn)制的數(shù)字返回。
如果是以 0x 開(kāi)頭的數(shù)字字符串,則 parseInt() 會(huì)把它作為十六進(jìn)制數(shù)字處理:先把它轉(zhuǎn)換為十六進(jìn)制數(shù)值,然后再轉(zhuǎn)換為十進(jìn)制的數(shù)字返回。
var d = 010; //八進(jìn)制數(shù)字字符串 var e = 0x10; //十六進(jìn)制數(shù)字字符串 console.log(parseInt(d)); //返回十進(jìn)制數(shù)字8 console.log(parseInt(e)); //返回十進(jìn)制數(shù)字16
parseInt() 也支持基模式,可以把二進(jìn)制、八進(jìn)制、十六進(jìn)制等不同進(jìn)制的數(shù)字字符串轉(zhuǎn)換為整數(shù)?;J接?parseInt() 函數(shù)的第二個(gè)參數(shù)指定。
示例1
下面代碼把十六進(jìn)制數(shù)字字符串“123abc”轉(zhuǎn)換為十進(jìn)制整數(shù)。
var a = "123abc"; console.log(parseInt(a,16)); //返回十進(jìn)制整數(shù)1194684
示例2
下面代碼把二進(jìn)制、八進(jìn)制和十進(jìn)制數(shù)字字符串轉(zhuǎn)換為十進(jìn)制的整數(shù)。
console.log(parseInt("10",2)); //把二進(jìn)制數(shù)字 10 轉(zhuǎn)換為十進(jìn)制整數(shù),為 2 console.log(parseInt("10",8)); //把八進(jìn)制數(shù)字 10 轉(zhuǎn)換為十進(jìn)制整數(shù),為 8 console.log(parseInt("10",10)); //把十進(jìn)制數(shù)字 10 轉(zhuǎn)換為十進(jìn)制整數(shù),為 10
示例3
如果第一個(gè)參數(shù)是十進(jìn)制的值,包含 0 前綴,為了避免被誤解為八進(jìn)制的數(shù)字,則應(yīng)該指定第二個(gè)參數(shù)值為 10,即顯示定義基模式,而不是采用默認(rèn)基模式。
console.log(parseInt("010")); //把默認(rèn)基模式數(shù)字 010 轉(zhuǎn)換為十進(jìn)制整數(shù)為 10 console.log(parseInt("010",8)); //把八進(jìn)制數(shù)字 010 轉(zhuǎn)換為十進(jìn)制整數(shù)為 8 console.log(parseInt("010",10)); //把十進(jìn)制數(shù)字 010 轉(zhuǎn)換為十進(jìn)制整數(shù)為 10
方法2:位操作符
console.log(0 | "123.45")//123 console.log(0 | 123.45)//123 console.log(0 ^ 123.45)//123 console.log(~~123.45)//123
原理:javascript沒(méi)有整數(shù)的概念,所有的數(shù)值型都是雙精度浮點(diǎn)數(shù)。在用位運(yùn)算符時(shí),它會(huì)先把操作數(shù)轉(zhuǎn)變成整數(shù),方便操作。而0與其他值異或或者按位或都不會(huì)改變操作值的
方法3:Math.floor與Math.ceil
實(shí)例
console.log(Math.floor(2.3))//2 console.log(Math.floor(-2.3))//-3 console.log(Math.ceil(2.3))//3 console.log(Math.ceil(-2.3))//-2
兩者不足:
Math.floor得到的是數(shù)字的最小整數(shù);而Math.ceil得到的是最大整數(shù)。所以導(dǎo)致本來(lái)-2.3我們?nèi)≌脑捨覀円玫降氖?2,但是用Math.floor得到的是-3。而2.3用Math.ceil得到的是3,但是我們要的是2就行了。
解決:
//自行定義一個(gè)函數(shù) function getInt(val){ return val>0 ? Math.floor(val):Math.ceil(val); }
到此,關(guān)于“javascript如何將數(shù)據(jù)轉(zhuǎn)換為整數(shù)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。