This page was translated from English by the community.Learn more and join the MDN Web Docs community.
RangeError: radix must be an integer
Сообщение
RangeError: radix must be an integer at least 2 and no greater than 36 (Firefox)RangeError: toString() radix argument must be between 2 and 36 (Chrome)
In this article
Тип ошибки
RangeErrorЧто пошло не так?
МетодNumber.prototype.toString() был вызван с дополнительным параметромradix. Его значение должно быть целым числом, принадлежащим промежутку от 2 до 36 и указывающим основание системы счисления, которая должна быть использована для представления численных значений. Например, десятичное (основание 10) число 169 представляется в шестнадцатеричном виде (основание 16) как A9.
Почему значение этого параметра не может быть больше, чем 36? Для оснований, превышающих 10, в качестве цифр используются алфавитные символы; следовательно, основание не может быть больше 36, поскольку в латинском алфавите (используемом английским и многими другими языками) только 26 символов.
Наиболее распространённые основания систем счисления:
- 2 длядвоичных чисел,
- 8 длявосьмеричных чисел,
- 10 длядесятичных чисел,
- 16 дляшестнадцатеричных чисел.
Примеры
>Некорректное применение
(42).toString(0);(42).toString(1);(42).toString(37);(42).toString(150);// Нельзя использовать для форматирования строку данного вида:(12071989).toString("MM-dd-yyyy");Корректное применение
(42).toString(2); // "101010" (двоичная система)(13).toString(8); // "15" (восьмеричная)(0x42).toString(10); // "66" (десятичная)(100000).toString(16); // "186a0" (шестнадцатеричная)