溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

javascript如何將數(shù)據(jù)轉(zhuǎn)換為整數(shù)

發(fā)布時(shí)間:2021-06-23 14:44:11 來(lái)源:億速云 閱讀:743 作者:chen 欄目:web開(kāi)發(fā)

這篇文章主要介紹“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í)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI