第乙個函式,轉型函式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...