--- title: 'RangeError: radix must be an integer' slug: Web/JavaScript/Reference/Errors/Bad_radix tags: - JavaScript - RangeError - Ошибки translation_of: Web/JavaScript/Reference/Errors/Bad_radix ---
{{jsSidebar("Errors")}}

Сообщение

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)

Тип ошибки

{{jsxref("RangeError")}}

Что пошло не так?

Метод  {{jsxref("Number.prototype.toString()")}} был вызван с дополнительным параметром radix. Его значение должно быть целым числом, принадлежащим промежутку от 2 до 36 и указывающим основание системы счисления, которая должна быть использована для представления численных значений. Например, десятичное (основание 10) число 169 представляется в шестнадцатеричном виде (основание 16) как A9.

Почему значение этого параметра не может быть больше, чем 36? Для оснований, превышающих 10, в качестве цифр используются алфавитные символы; следовательно, основание не может быть больше 36, поскольку в латинском алфавите (используемом английским и многими другими языками) только 26 символов.

Наиболее распространённые основания систем счисления:

Примеры

Некорректное применение

(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"  (шестнадцатеричная)

Смотрите также