RangeError: основание системы счисления должно быть целым числом
Исключение JavaScript "radix must be an integer at least 2 and no greater than 36" возникает, когда был указан необязательный параметр radix метода Number.prototype.toString() или BigInt.prototype.toString(), и его значение не находится в диапазоне от 2 до 36.
Сообщение
RangeError: toString() radix argument must be between 2 and 36 (V8-based & Safari) RangeError: radix must be an integer at least 2 and no greater than 36 (Firefox)
Тип ошибки
Что пошло не так?
Был указан необязательный параметр radix метода Number.prototype.toString() или BigInt.prototype.toString(). Его значение должно быть целым числом (числом) от 2 до 36, указывающим основание системы счисления, которое будет использоваться для представления числовых значений. Например, десятичное число 169 (основание 10) в шестнадцатеричной системе счисления (основание 16) представляется как A9.
Почему значение этого параметра ограничено 36? Основание системы счисления больше 10 использует алфавитные символы в качестве цифр; следовательно, основание не может быть больше 36, поскольку латинский алфавит (используемый в английском и многих других языках) содержит всего 26 символов.
Наиболее распространённые основания:
- 2 для двоичных чисел,
- 8 для восьмеричных чисел,
- 10 для десятичных чисел,
- 16 для шестнадцатеричных чисел.
Примеры
Некорректные случаи
(42).toString(0);
(42).toString(1);
(42).toString(37);
(42).toString(150);
// You cannot use a string like this for formatting:
(12071989).toString("MM-dd-yyyy");
Корректные случаи
(42).toString(2); // "101010" (binary) (13).toString(8); // "15" (octal) (0x42).toString(10); // "66" (decimal) (100000).toString(16); // "186a0" (hexadecimal)
Смотрите также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Bad_radix