2010-04-13 28 views

Trả lời

23

Các tham số bổ sung chỉ hoạt động cho Number.prototype.toString để xác định radix (số nguyên giữa 2 và 36 quy định cụ thể cơ sở để sử dụng cho đại diện cho các giá trị số):

var number = 12345; 
number.toString(2) === "11000000111001" 
number.toString(3) === "121221020" 
// … 
number.toString(36) === "9ix" 
+1

MDN đưa ra giải thích khá tốt về chủ đề: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toString – luissquall

2

Nó không định nghĩa là một cuộc tranh luận toàn cầu áp dụng đối với toString , nó chỉ có ý nghĩa trên Number, nơi nó chỉ định cơ sở để viết. Bạn có thể sử dụng ví dụ. n.toString(16) để chuyển đổi sang hex.

Các đối tượng tích hợp khác không sử dụng bất kỳ đối số nào và JavaScript sẽ tự động bỏ qua các đối số không được sử dụng, vì vậy, hãy chuyển 16 sang phương thức toString khác sẽ không tạo sự khác biệt. Tất nhiên, bạn có thể tự tạo các phương thức toString của riêng mình, nơi các đối số tùy chọn có thể có nghĩa là bất cứ điều gì bạn thích.

9

này chỉ hoạt động trên các đối tượng Số lượng và được thiết kế để cung cấp cho bạn một cách để hiển thị một số với một cơ số nhất định:

var n = 256; 
var d = n.toString(10); // decimal: "256" 
var o = n.toString(8); // octal: "400" 
var d = n.toString(16); // hex:  "100" 
var b = n.toString(2); // binary: "100000000" 
var w = n.toString(20); // base 20: "cg" 

Lưu ý rằng radix phải là số nguyên từ 2 đến 36 hoặc toString() sẽ nâng cao một lỗi.

+0

Nhận xét muộn về vấn đề này và thiếu chỉnh sửa để thực hiện. Nhưng 'var b = n.toString (16); // binary: "100000000" 'thực sự nên là' n.toString (2) 'vì nhị phân nằm trong cơ sở 2, tôi cho rằng đó chỉ là một thứ dán bản sao! – Rchristiani

+0

@Rchristiani Tuyệt đối. Một bản chỉnh sửa sẽ hoàn toàn theo thứ tự, nhưng bây giờ tôi đã tự thay đổi nó. Cảm ơn gợi ý! – Tomalak

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