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

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

提問人:劉團圓發(fā)布時間:2020-11-23

■知識點

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

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)換為浮點數(shù)。

    使用乘號運算符。

■實例設計

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

console.log (parselnt ("123abc")); //返回數(shù)字 123

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

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

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

    如果以Ox為開頭的數(shù)字字符串,則parselntO把它作為十六進制數(shù)字處理:先把它轉(zhuǎn)換為十六進制數(shù)值,然后再轉(zhuǎn)換為十進制數(shù)字返回。

var d = 010;                 //八進制數(shù)字字符串

var e = "0x10";                 //十六進制數(shù)字字符串

console. log (parselnt (d)); //返回十進制數(shù)字8

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

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

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

    var a = "123abc";

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

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

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

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

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

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

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

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

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

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

console.log(parseFloat("123"));         //返回數(shù)值123 

console.log(parseFloat("123abc"));      //返回數(shù)值123 

console.log(parseFloat("010"));         //返回數(shù)值10 

console.log(parseFloat("0xl0n));        //返回數(shù)值0 

console.log(parseFloat("xl0n));         //返回數(shù)值NaN

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

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

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

console.log(a + (b * 1));     //返回數(shù)值2

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

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