parseInt('1') = 1
parseInt('01') = 1
parseInt('5') = 5
parseInt('05') = 5
parseInt('8') = 8
Tại sao parseInt() trả về kết quả không mong đợi khi tôi chuyển một chuỗi có số 0 đứng đầu?
Nhưng tại sao:
parseInt('08') = 0
parseInt('09') = 0
parseInt('1') = 1
parseInt('01') = 1
parseInt('5') = 5
parseInt('05') = 5
parseInt('8') = 8
Tại sao parseInt() trả về kết quả không mong đợi khi tôi chuyển một chuỗi có số 0 đứng đầu?
Nhưng tại sao:
parseInt('08') = 0
parseInt('09') = 0
Luôn sử dụng quá tải mà mất radix như tham số thứ hai:
parseInt('011',10) = 11
số bắt đầu với 0
(không 0x
) là số bát phân. Do đó, 8
và 9
không phải là số bát phân hợp lệ.
đây là một gợi ý:
parseInt('011') = 9
Nếu nó bắt đầu với 0 nó phân tích như một số bát phân.
Những người khác đã trả lời lý do tại sao một phần.
Để loại bỏ, bạn có thể sử dụng parseFloat
() hoặc parseInt (giá trị, cơ sở) Fiddle
Khi chuyển đổi một chuỗi thành số thập phân trong JavaScript, bạn có thể sử dụng toán tử cộng thay vì parseInt hoặc parseFloat, giống như trong này ví dụ:
x = + ("12"); // đến x được gán một số 12, sau khi chuyển đổi từ một chuỗi "12"
x = + ("1" + "2"); // đến x được chỉ định một số 12, sau khi chuyển đổi từ một chuỗi "12"