1. 程式人生 > >Number()、parseInt()、parseFloat()的區別

Number()、parseInt()、parseFloat()的區別

查看 必須 有效 不能 出現 處理 () 數字 blue

Number():

Number()的強制類型轉換與parseInt()和parseFloat()方法的處理方式相似,只是它轉換的是整個值,而不是部分值,如果有無效字符,該方法將返回NaN。

例如
如果要把字符串 "12.34 "轉換成整數,那麽Number()將返回12.34

如果要把字符串 "1234blue "轉換成整數,那麽Number()將返回NaN,因為當它檢測到字符b時,就會停止檢測過程。

parseInt():

parseInt()方法首先查看位置0處的 字符,判斷它是否是個有效數字;如果不是,該方法將返回NaN,不再繼續執行其他操作。但如果該字符是有效數字,該方法將查看位置1處的字符,進行同樣的 測試。這一過程將持續到發現非有效數字的字符為止,此時parseInt()將把該字符之前的字符串轉換成數字。

例如


如果要把字符串 "12.34 "轉換成整數,那麽parseInt()將返回12,因為當它檢測到字符"."時,就會停止檢測過程。

如果要把字符串 "1234blue "轉換成整數,那麽parseInt()將返回1234,因為當它檢測到字符b時,就會停止檢測過程。

parseInt()方法還有基模式,可以把二進制、八進制、十六進制或其他任何進制的字符串轉換成整數。

基是由parseInt()方法的第二個參數指定的,所以要解析十六進制的值,當然,對二進制、八進制,甚至十進制(默認模式),都可以這樣調用parseInt()方法。

如果十進制數包含前導0,那麽最好采用基數10,這樣才不會意外地得到八進制的值。

二、parseFloat()

與parseInt()方法的處理方式相似,從位置0開始查看每個字符,直到找到第一個非有效的字符為止,然後把該字 符之前的字符串轉換成數字。

不過,對於這個方法來說,第一個出現的小數點是有效字符。如果有兩個小數點,第二個小數點將被看作無效的, parseFloat

()方法會把這個小數點之前的字符串轉換成數字。這意味著字符串 "22.34.5 "將被解析成22.34。

使用parseFloat()方法的另一不同之處在於,字符串必須以十進制形式表示浮點數,而不能用八進制形式或十六進制形式。

該方法會忽略前導0,所以八進制數0908將被解析為908。對於十六進制數0xA,該方法將返回NaN,因為在浮點數中,x不是有效字符。

此外,parseFloat()也沒有基模式。

Number()、parseInt()、parseFloat()的區別