2013-06-20 33 views
9

Tôi tạo ra một ứng dụng kịch bản đơn giản như sau:Tại sao parseInt trả về NAN cho chuỗi "08" và trả về 7 cho chuỗi "07"?

function testeBug() { 
    Logger.log(parseInt("07")); 
    Logger.log(parseInt("08")); 
} 

Và đây là kết quả logger:

[13-06-19 23: 09: 13: 130 BRT] 7.0 [13-06- 19 23: 09: 13: 130 BRT] NaN

Tại sao điều này xảy ra? Tôi đang sử dụng Google Apps Script

+1

bản sao có thể có của [Cách đến parseInt ("08") = 0, parseInt ("07") = 7] (http://stackoverflow.com/questions/12652305/how-come-parseint08-0-parseint07- 7) - bát phân trong JavaScript - 8 không phải là chữ số bát phân hợp lệ. –

+0

Tôi đang sử dụng GOOGLE APPS SCRIPT không phải là Java Script –

+0

Hãy thử giải pháp tương tự đã làm việc cho nó. –

Trả lời

17

Bạn cần phải vượt qua trong tham số radix để parseInt

parseInt("08", 10); 

không làm như vậy gây ra một số trình duyệt để điều trị chuỗi với một số không hàng đầu như cơ sở-8, đó là những gì bạn nhìn thấy, kể từ 07 Tháng trong cơ sở-8 là 7, trong khi 08 là không hợp lệ.

1

07 là ký hiệu bát phân hợp lệ, 08 thì không.

Các vấn đề liên quan