parseInt

Синтаксис

var intValue = parseInt(string[, radix])

Аргументы

string
строковое представление числа
radix
основание системы счисления

Описание, примеры

Функция parseInt преобразует первый аргумент в число по указанному основанию, а если это невозможно - возвращает NaN.

Например, radix=10 даст десятичное число, 16 - шестнадцатиричное и т.п. Для radix>10 цифры после девяти представлены буквами латинского алфавита.

Если в процессе преобразования parseInt обнаруживает цифру, которая не является цифрой в системе счисления с основанием radix, например G вв 16-ричной системе или А в десятичной, то процесс преобразования тут же завершается и возвращается значение, полученное из строки на данный момент.

parseInt округляет дробные числа, т.к останавливается на десятичной точке.

Если radix не указан или равен 0, то javascript предполагает следующее:

  • Если входная строка начинается с "0х", то radix = 16
  • Если входная строка начинается с "0", то radix = 8. Этот пункт зависит от реализации и в некоторых браузерах (Google Chrome) отсутствует.
  • В любом другом случае radix=10

Если преобразовать в число не удается, parseInt возвращает
NaN

Чтобыпредставить число в виде строки нужной системы счисления, используйте intValue.toString(основание).

Пример: все вызовы вернут 15
Выделить все
parseInt(" 0xF", 16)
parseInt(" F", 16)
parseInt("17", 8)
parseInt(021, 8)
parseInt("015", 10)
parseInt(15.99, 10)
parseInt("FXX123", 16)
parseInt("1111", 2)
parseInt("15*3", 10)
parseInt("15e2", 10)
parseInt("15px", 10)
parseInt("12", 13)
Пример: все вызовы вернут NaN
parseInt("Hello", 8); // вообще не число
parseInt("546", 2);   // цифры не входят в 2-чную систему
Пример: все вызовы вернут -15
Выделить все
parseInt("-F", 16)
parseInt("-0F", 16)
parseInt("-0XF", 16)
parseInt(-10, 16)
parseInt(-15.1, 10
parseInt(" -17", 8)
parseInt(" -15", 10)
parseInt("-1111", 2)
parseInt("-15e1", 10)
parseInt("-12", 13)

Большинство реализаций интерпретируют строки, начинающиеся с 0 как восьмиричные. Поэтому следующие вызовы вернут восьмиричный результат:

parseInt("0e0"); // 0
parseInt("08"); // 0, т.к. '8' - не цифра в 8-ричной системе

При обработке данных, веденных пользователем, указывайте основание в вызове. Это даст более предсказуемые результаты.

parseInt("08", 10) // 10

Чтобы преобразовать строку, в точности являющуюся числом, используйте оператор "+":

var str = "123.6"
+str // 123.6 - не округляет

При любых ошибках преобразования оператор "+" возвращает NaN.

var str = "123bc"
+str // NaN
parseInt(str,10) // 123

See also

isNaN, parseFloat, Object.valueOf, Number.toString