位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > JavaScript > 問(wèn)題詳情

JavaScript 轉(zhuǎn)換為數(shù)字

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-23

■知識(shí)點(diǎn)

常用值轉(zhuǎn)換為數(shù)字說(shuō)明如下。

1                   => 1

0                   => 0

true                => 1

false               => 0

""                  => 0

Undefined           => NaN

null                => 0

NaN                 => NaN

Infinity            => Infinity

把值轉(zhuǎn)換為數(shù)字的常用方法有以下3種。

    parselnt():可以把值轉(zhuǎn)換為整數(shù)。

    parseFloatO:可以把值轉(zhuǎn)換為浮點(diǎn)數(shù)。

    使用乘號(hào)運(yùn)算符。

■實(shí)例設(shè)計(jì)

parselnt()方法可以把前面分析合法的數(shù)字字符全部轉(zhuǎn)換為數(shù)值并返回。

console.log (parselnt ("123abc")); //返回?cái)?shù)字 123

console.log(parselnt ("1.73"));         //返回攀字 1

console, log (parselnt (".123")); //返回值NaN

    如果是以0為開(kāi)頭的數(shù)字宇符串,則parselntO把它作為八進(jìn)制數(shù)字處理:先把它轉(zhuǎn)換為八進(jìn)制的數(shù)值,然后再轉(zhuǎn)換為十進(jìn)制數(shù)字返回。

    如果以O(shè)x為開(kāi)頭的數(shù)字字符串,則parselntO把它作為十六進(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 (parselnt (d)); //返回十進(jìn)制數(shù)字8

console. log (parselnt (e) ); //返回十進(jìn)制數(shù)字16

    parselntO也支持基模式,可以把二進(jìn)制、八進(jìn)制、十六進(jìn)制等不同進(jìn)制的數(shù)字字符串轉(zhuǎn)換為整數(shù)。 基模式由parselnt()函數(shù)的第二個(gè)參數(shù)指定。

    下面的代碼把十六進(jìn)制數(shù)字字符串"123abc"轉(zhuǎn)換為十進(jìn)制整數(shù)。

    var a = "123abc";

    console.log (parselnt(a, 16)); //返回值十進(jìn)制整數(shù) 1194684

    下面的代碼把二進(jìn)制、八進(jìn)制和十進(jìn)制數(shù)字字符串轉(zhuǎn)換為十進(jìn)制的整數(shù)。

console.log(parselnt ("10",2));         //把二進(jìn)制數(shù)字10轉(zhuǎn)換為十難制整數(shù)為2

console.log(parseInt ("lO",8));         //把八進(jìn)制數(shù)字10轉(zhuǎn)換為十邊制整數(shù)為8

console.log(parselnt ("10",10)); //把十進(jìn)制數(shù)宇10轉(zhuǎn)鐵為十進(jìn)制整數(shù)為10

如果第1個(gè)參數(shù)是十進(jìn)制的值,包含0前綴,為了避免被誤解為八進(jìn)制數(shù)字,則應(yīng)該指定第2個(gè)參數(shù)值為10,即顯式定義基模式,而不是采用默認(rèn)基模式。

console.log (parselnt ("010") ) ; //把默認(rèn)基模式數(shù)字010轉(zhuǎn)換為十進(jìn)制整數(shù)為10

console.log (parselnt ("010", 8) ) ; //把八進(jìn)制數(shù)字010轉(zhuǎn)換為十進(jìn)制整數(shù)為8

console.log (parselnt ("010", 10) ); //把十進(jìn)制數(shù)字010轉(zhuǎn)換為十進(jìn)制整數(shù)為10

parseFloatO的參數(shù)必須是十進(jìn)制形式的字符串,而不能夠使用八進(jìn)制或十六進(jìn)制的數(shù)字字符串。同時(shí)對(duì)于數(shù)字前面的0 (八進(jìn)制數(shù)字標(biāo)識(shí))會(huì)忽略,對(duì)于十六進(jìn)制形式的數(shù)字將返回0。

console.log(parseFloat("123"));         //返回?cái)?shù)值123 

console.log(parseFloat("123abc"));      //返回?cái)?shù)值123 

console.log(parseFloat("010"));         //返回?cái)?shù)值10 

console.log(parseFloat("0xl0n));        //返回?cái)?shù)值0 

console.log(parseFloat("xl0n));         //返回?cái)?shù)值NaN

如果變量乘以1,則變量會(huì)被JavaScript自動(dòng)轉(zhuǎn)換為數(shù)值,乘以1之后,結(jié)果沒(méi)有發(fā)生變化,但是值的類(lèi)型被轉(zhuǎn)換為數(shù)值。如果值無(wú)法被轉(zhuǎn)換為合法的數(shù)值,則返回NaN。

var b = 1;                    //數(shù)值 

var b = "1";                  //數(shù)字字符串 

console.log(a + (b * 1));     //返回?cái)?shù)值2

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部