JavaScript中的數值轉換詳解

2021-09-24 03:53:30 字數 4102 閱讀 3831

第乙個函式,轉型函式number()可以用於任何資料型別轉換為數值。

而另外兩個函式parseint(),parsefloat()則專門用於把字串轉換成數值。

下面給出一些具體的例子:

console.

log(

number(""

));//0

console.

log(

number

("hello ecmascript!"))

;//nan

console.

log(

number

("0000123"))

;//123

console.

log(

number

("-1234"))

;//-1234

console.

log(

number

("+1234"))

;//1234

console.

log(

number

("0xf"))

;//15,只有十六進製制可以識別轉換

console.

log(

number(.1));

console.

log(

number

(".1"))

;console.

log(

number(1.

));//1

console.

log(

number

("1."))

;//1

/*一些 number()與 parseint(),parsefloat()的區別思考:*/

console.

log(

number

("070"))

;//70

console.

log(

number

(070))

;//56,自動以8進製方式轉換

console.

log(

number

(1010))

;//1010,不能自動以2進製方式轉換

console.

log(

number

("070",8

));//70,不存在第二個引數當作基數來說明以哪種進製進行轉換

console.

log(

number

(0xf))

;//15,自動以16進製制方式轉換

console.

log(

number

("1010",2

));//1010,不存在第二個引數當作基數來說明以哪種進製進行轉換

由於 number() 函式再轉換字串時比較複雜而且不夠合理,因此在處理整數的時候更常用的是 parseint() 函式。

下面是一些關於parseint()的具體例子:

console.

log(

parseint

("1000010"))

;//二進位制無法解析,輸出1000010

console.

log(

parseint

("070"))

;//八進位制無法解析,輸出70,前導0被忽略

console.

log(

parseint

("0xa"))

;//十六進製制可以被解析,輸出10

console.

log(

parseint(""

));//nan

console.

log(

parseint

(22.5))

;//22

console.

log(

parseint

("1234.567"))

;//1234

console.

log(

parseint

("1234blue"))

;//1234

console.

log(

parseint

("blue1234"))

;//nan

console.

log(

parseint

(".1234"))

;//nan

為了消除在使用parseint()函式時可能導致的上述困惑,可以為這個函式提供第二個引數:轉換時使用的基數(即多少進製)。如果知道要解析的值是十六進製制格式的字串,那麼指定基數16作為第二個引數,可以保證得到正確的結果,例如:

console.

log(

parseint

("af",16

));//175,可以省略16進製制前導0x

console.

log(

parseint

("70",8

));//56,可以省略8進製前導0

console.

log(

parseint

("70",10

));//70,十進位制

console.

log(

parseint

("1010",2

));//10,二進位制

指定不同的基數會影響到轉換的輸出結果。例如:

console.

log(

parseint

("10",2

));//2,二進位制

console.

log(

parseint

("10",8

));//8,八進位制

console.

log(

parseint

("10",10

));//10,十進位制

console.

log(

parseint

("10",16

));//16,十六進製制

因此為了避免錯誤的解析,我們建議無論在什麼情況下都明確指定基數。

console.

log(

parsefloat

("12.34.56"))

;console.

log(

parsefloat

("12.34hello56"))

;console.

log(

parsefloat

(".1234hello567"))

;234

console.

log(

parsefloat

("blue123"))

;//nan

console.

log(

parsefloat

("1234blue"))

;//1234

console.

log(

parsefloat

("1234."))

;//1234

console.

log(

parsefloat

("1234.0000"))

;//1234

console.

log(

parsefloat

("0xa"))

;//0,十六進製制始終轉換為0

console.

log(

parsefloat

("3e5"))

;//300000

console.

log(

parsefloat

("3e-5"))

;console.

log(

parsefloat

("070"))

;//70,八進位制無法解析,只解析十進位制,並且前導0被忽略

console.

log(

parsefloat

("01001001"))

;//1001001,二進位制也無法解析

JavaScript數值轉換

有三個函式可以將引數轉化為數值 number parseint 和parsefloat number 是轉型函式,可以運用於任何型別 另外兩個函式則是專門用於將字串轉化為數值。number 1 字串只包含數字的情況 可帶正負號 將其轉化為十進位制數值,前面的0將被忽略。2 如果是有效浮點格式,則將轉...

JavaScript 數值函式

函式名 函式意義 math.abs 1 絕對值math.ceil 3.2 向上取整 math.floor 3.2 向下取整 math.max 2,5,1 最大值math.min 2,5,1 最小值math.pow 3,2 指數運算 math.sqrt 9 平方根math.log 10 自然對數 ma...

數值轉漢字

author bao import re defnum to mandarin num convert int number to mandarin in simplified chinese.param num int return simplified chinese string in 1 n...