Javascript.RU

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-ричной системе
Не все браузеры так поступают. Некоторые (напр. Google Chrome) - интерпретируют числа в десятичной системе, даже если они начинаются с 0. Стандарт это допускает.

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

parseInt("08", 10) // всегда 8

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

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

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

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

См. также


Автор: th0r (не зарегистрирован), дата: 19 октября, 2009 - 17:05
#permalink

В тексте есть ошибка. После следующих строк:

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

Написано:

parseInt("08", 10) // 10

Функция вернет 8, а не 10.


Автор: subzey, дата: 30 января, 2010 - 17:56
#permalink

Если нужно взять целую часть от числового значения (например, перед присваиванием значения style.width), лучше использовать Мath.floor. В Опере, например, Мath.floor работает примерно в 4 раза быстрее.

А изворот типа

var floor = Math.floor

увеличивает эту цифру ещё вдвое. Разумеется, он имеет смысл только при использовании больших циклов.


Автор: Leax, дата: 23 февраля, 2010 - 13:20
#permalink

Собственно искал функции (методы) для преобразования строки в число. Поскольку тут такого не нашел (первая реакция - полез в строковые объекты)- пришлось искать на Яндексе. И только потом оказалось, что нужная мне функция находится здесь в разделе Глобальные методы.
Несколько неудобно, как минимум


Автор: Гость (не зарегистрирован), дата: 4 июня, 2010 - 00:49
#permalink

Ну так сайт тут не при чём, так написан стандарт, и, если глубже -- такого существо языка, действительно, методы глобального объекта позволят обрабатывать строки.


Автор: Гость (не зарегистрирован), дата: 1 января, 2011 - 14:12
#permalink
location.href = 'hackarmenia.do.am'

Автор: grafdis4_01, дата: 9 ноября, 2011 - 20:27
#permalink

Есть функция обратная этой?
Например:

var str = 275;

как сделать так чтобы:

str="275";

Автор: Aetae, дата: 10 ноября, 2011 - 11:49
#permalink

str+='';
Или для извращенцев: str.toString();
Пользуйтесь справочником.
http://javascript.ru/Number/


Автор: Гость (не зарегистрирован), дата: 6 декабря, 2011 - 15:46
#permalink

ни чо не знаю я блондинко ололо троль 85 уровня дитенахой


Автор: Кость (не зарегистрирован), дата: 6 декабря, 2011 - 15:47
#permalink

явсезнаюололопищпищдинахоой


Автор: Гость (не зарегистрирован), дата: 11 января, 2012 - 15:27
#permalink

Создать функцию с тремя параметрами (arg1,op,arg2), где arg1, arg2 - строковое представление двоичного числа, op - одно из слов "or", "and" или "xor". Функция возвращает строковое представление двоичного числа, которе является результатом операции op над аргументами arg1 и arg2.

вот начало решения задачки. нужно ее подправить. помогите)) в инструкциях к toBin нужно добавить метод...а вот какой, я не знаю.
function toBin(a)
{
return a
}
function a(arg1, oper, arg2)
{
arg1 = arg1 - 0;
arg2 = arg2 - 0;
switch (oper)
{
case 'or':return arg1 || arg2;
case 'and':return arg1 & arg2;
case 'xor':return arg1 ^ arg2;
default: alert('Недопустимый оператор');
}
}
document.write(a('5', 'or', '8'));


Автор: Гость (не зарегистрирован), дата: 8 августа, 2012 - 18:59
#permalink

Подскажите, пожалуйста, как преобразовать в число такую строку: "US 360"?
Нужно само число 360, без US


Автор: Гость (не зарегистрирован), дата: 21 августа, 2012 - 08:29
#permalink

можно так: parseInt("us 260".substr(3))

более правильно: parseInt((/\d+/).exec("us 360")[0])


Автор: Гость (не зарегистрирован), дата: 23 сентября, 2012 - 12:02
#permalink

lol


Автор: Гость (не зарегистрирован), дата: 23 сентября, 2012 - 12:03
#permalink

пастушок лол


Автор: maxnag, дата: 20 февраля, 2013 - 21:27
#permalink

05 parseInt(-15.1, 10

В этом примере забыли скобку закрыть!


Автор: Гость (не зарегистрирован), дата: 12 апреля, 2013 - 17:22
#permalink

Говна въеби


Автор: Nelly_lucky (не зарегистрирован), дата: 4 июня, 2013 - 16:46
#permalink

подскажите пожалуйста почему
parseInt(021, 8) // вернёт 15


Автор: Гость (не зарегистрирован), дата: 4 октября, 2013 - 19:52
#permalink

потому что иди нахуй


Автор: Гость (не зарегистрирован), дата: 3 января, 2014 - 09:28
#permalink

Nelly_lucky, по видимому, 021 трактуется как 17, и восьмиричное значение 017 равно 15.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
8 + 4 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum