有三個函式可以將非數值轉換成數值:number()
,parseint()
,parsefloart()
。
number()
是乙個轉型函式,可以用於任何資料型別,它的函式轉換規則如下:
var num1 =
number
("hello world!");
//nan
var num2 =
number
(" ");
//0var num3 =
number
("000011");
//11
var num4 =
number
(true);
//1
parseint()
,parsefloart()
兩個函式是專門用於把字串轉換成數值的。
var num1 =
parseint
(「1234blue」)
`; //1234
var num2 = parseint("")`
;//nan
var num3 =
parseint
("oxa"
)`; //10(十六進製制數)
var num4 = parseint("22.5")`
;//22
var num5 =
parseint
(" 070");
//56(八進位制)
var num6 =
parseint
("70");
//70(十進位制)
var num7 =
parseint
(「oxf」)
;//15(十六進製制)
parseint()
還有兩外一種用法,使用兩個引數,第二個引數表示轉換時使用的基數(即多少進製)。如果指定了16作為第二個引數,字串可以不帶前面的「ox」,具體案例如下:
var num1 =
parseint
(「oxaf」,16)
`; //175
var num2 = parseint("af",16)`
;//175
var num3 =
parseint
("af"
)`; //nan
var num4 = parseint("10",2)`
;//2(按二進位制解析)
var num5 =
parseint
("10",8);
//8(按八進位制解析)
var num6 =
parseint
("10",10);
//10(按十進位制解析)
var num7 =
parseint
(「10」,16);
//16(按十六進製制解析)
parsefloart()
與parseint()
類似,也是從第乙個字元(位置0)開始解析每個字元,而且一直解析到字串末尾,或者解析到遇到乙個無效的浮點數字字元為止,也就是說,字串的第乙個小數點是有效的,而第二個小數點就是無效的,因此它後面的字串將被忽略。舉例來說,「22.34.5」將會被轉換為22.34.
parsefloart()
與parseint()
的第二個區別是它始終都會忽略前導的零。parsefloart()
可以識別前面討論的所有浮點數值格式,也包括十進位制整數格式。但十六進製制的字串則始終會被轉換為0,由於parsefloart()
只解析十進位制,所以它沒有用第二個引數指定基數的用法;最後注意一點:如果字串包含的是乙個可解析為整數的數(沒有小數點,或者小數點後都是零),parsefloart()
會返回整數 。
案例如下:
var num1 =
parsefloat
(「1234blue」)
`; //1234
var num2 = parsefloat("oxa")`
;//0
var num3 =
parsefloat
("22.5"
)`;
var num4 = parsefloat("22.34.5")`
;var num5 =
parsefloat
("0908.5");
var num6 =
parsefloat
("3.125e7");
//31250000
js數值轉換規則
如果是物件,則呼叫valueof 方法按照前述規則繼續轉化,若結果為nan,則呼叫物件的tostring 方法,再按照前面的規則轉換返回的字串 parseint 處理字串時會忽略字串前面的空格,若遇到第乙個字元不是數字或符號,則返回nan 如果是數字,則會解析直到所有字串或遇到非數字字元。會識別十六...
js處理數值 隨機數 數值轉換 數值擷取
1 生成固定範圍內的隨機數 生成從min到max的隨機數 param min param max returns function randombyto min,max 2 將數值換成 0.00 的格式 將傳入的數字轉換成 0.00 的格式 param num returns function va...
JS 數值轉換 加減乘除
doctype html html head meta charset utf 8 title title link rel stylesheet type text css href script src type text j ascript charset utf 8 script head ...