亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

parseFloat()與parseInt()的區別?

parseFloat()與parseInt()的區別?

正在回答

2 回答

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

例如

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

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

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

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



二、parseFloat()

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

不過,對于這個方法來說,第一個出現的小數點是有效字符。如果有兩個小數點,第二個小數點將被看作無效的, parseFloat()方法會把這個小數點之前的字符串轉換成數字。這意味著字符串 "22.34.5"將被解析成22.34。

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

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


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



兩者都是從位置0開始查看,直到非有效數字位置,再把有效的部分轉成整數或者浮點數。

但是parseInt()可以帶參數,指定二進制、八進制或者十六進制(默認十進制),可以解析八進制數如“010”、十六進制數“0x10”,而parseFloat()不帶參數,不能解析八進制、十六進制數。

八進制數是以0開頭,parseInt()對于有前導0的會解析成八進制數,而parseFloat()不會解析八進制數,因此八進制數都會被解析成10進制輸出且輸出時忽略前面的0

?十六進制數是以0x開頭,parseInt()會解析成十六進制數,而parseFloat()不會解析十六進制數,就跟“123db”這種類似,從頭開始查看,到非有效數字位置為止,把前面的有效部分轉成十進制,也就是說所有十六進制數都會被轉成0。

另外,parseInt()?parseFloat()對于"123db"這種可以部分轉換,轉成數字123,而Number()就會認為是NaN,因為整個字符串不能完整轉化為數字。

?

在FF、Chrome、IE8、Opera下測試parseInt(“0xA”)均得到0,看書看到書上寫的返回NaN,錯啦……不過該書第二版已經做了更正哈哈。



http://img1.sycdn.imooc.com//5733235d0001626209150804.jpg


3 回復 有任何疑惑可以回復我~

parseFloat()是將字符串轉換為浮點數,并返回字符串中的數字,直到它到達不是數字部分。

parseInt()可以將任何進制的字符串轉換成整數。

2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

parseFloat()與parseInt()的區別?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號