JavaScript: преобразовать строку в число

Вопрос

Как преобразовать строку в число на JavaScript?


Ответ №1

Функции parseFloat() и parseInt()

В JavaScript существуют 2 встроенные функции для преобразования строк в числа: parseFloat() и parseInt().

parseFloat() принимает аргументом строку, которую необходимо привести к численному типу, и возвращает число типа float. Число должно содержаться в начале строки. Если после числа в строке идут ещё какие-то символы, то они отсекаются. Дробная часть числа должна быть записана через точку (запятая не воспринимается как разделитель). В случае, если parseFloat() не может преобразовать строку, то она возвращает NaN.

Также функция может обработать «число n, умноженное на 10 в степени x», которое в программировании принято записывать через букву E, например: 0.5E6 или 0.5E+6. Степень может быть также отрицательная: 0.5E-6, что равно 0.5*10^-6 или 0.5/1000000.

parseFloat('3.78kg')   // 3.78
parseFloat('kg33')   // NaN
parseFloat('0004.111')   // 4.111
parseFloat('0x66')   // 0
parseFloat('.5')   // 0.5
parseFloat('-.5')   // -0.5
parseFloat('0.5e6')   // 500000
parseFloat('0.03E+2')   // 3
parseFloat('3E-4')   // 0.0003
parseFloat('-3E-4')   // -0.0003

Функция parseInt(string[, radix]) принимает в качестве первого аргумента строку, анализирует её и возвращает целое число (тип integer). Функция пытается анализировать систему счисления, в которой записано число в исходной строке (например, десятичная, восьмеричная или шестнадцатеричная - но не только эти). Также систему счисления можно указать явно, передав её вторым параметром radix. Параметр radix может принимать любое число от 2 до 36 (в системах выше 10-й используются буквы английского алфавита, от A до Z).

Числа типа 1.5e6 функция не обрабатывает так, как parseFloat().

Ознакомьтесь, пожалуйста, с примерами ниже, чтобы не наколоться на подводные камни, запрятаны в работе функции parseInt().

parseInt('25')   // 25
parseInt('-25')   // -25
parseInt('45.12')   // 45
parseInt('045',10)   // 45
parseInt('70',8)    // 56  (70 в восьмеричной системе это 56 в десятичной)
parseInt('070')     // 56 (ВАЖНО!!! нуль вначале заставит функцию проанализировать строку как восьмеричное число)
parseInt('88',8)   // NaN (в восьмеричной системе нет цифры 8)
parseInt('a1')   // NaN (ВАЖНО!!! Функция по умолчанию не воспринимает число как 16-ричное, если не дописать в начале строки 0x)
parseInt('a1',16)   // 161 (здесь явно указана система счисления)
parseInt('0xa1')   // 161 (правильный формат 16-ричного числа, можно не указывать второй параметр)
parseInt('099')   // 0 (ВАЖНО!!! Число воспринимается как восьмеричное, но содержащее недопустимые символы)
parseInt('0.5e6')   // 0 (ВАЖНО!!! не работает как parseFloat)
parseInt('ZZ',36)   // 1295
parseInt('-FF')   // NaN
parseInt('-FF',16)   // -255

Если Вы обрабатываете данные из текстового поля, которые вводит пользователь, всегда используйте parseInt() вместе со вторым параметром radix, это обезопасит Ваш код от неожиданных результатов.

Можете испробовать работу этих функций в примере ниже:

Пример
Введите строку:




Результат:

12 комментария

  • Иван:

    > функция может обработать «число n в степени x»,
    > которое в программировании принято записывать через букву E
    Здесь неправильное словесное описание записи с E в программировании. На самом деле запись означает «число n умножить на десять в степени x».
    Для простоты можно сказать «…умнодить на единицу с X нулями»;) Например, 3.5E6 означает «3.5 умнодить на 1 с шестью нулями, т.е. на миллион».

  • Dorothywer:

    Нейросетевое обновление «XRumer 16.0 + XEvil 3.0″:
    распознавание бесплатно и быстро captcha Google, Яндекса, Фэйсбука, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других типов captchas,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Интересно? см. в YouTube «XEvil: new OCR — captcha solver»

    XRumer20170718

  • ArleneDeepe:

    Принципиально новое обновление «XRumer 16.0 + XEvil»:
    автораспознавание бесплатно и быстро капч Гугла, Yandex, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других видов captchas,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы? см. в Ютубе «XEvil: new OCR — captcha solver»

    XRumer20170721

  • ArleneDeepe:

    Революционное обновление «XRumer 16.0 + XEvil 3.0″:
    распознавание бесплатно и быстро капчи Google, Яндекса, Facebook, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других типов captchas,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Интересно? см. в YouTube «XEvil: new OCR — captcha solver»

    XRumer20170721

  • ArleneDeepe:

    Революционное обновление «XRumer 16.0 + XEvil»:
    обход бесплатно и быстро капчи Google, Яндекса, Facebook, ВКонтакте, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других видов капчи,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы? см. в YouTube «XEvil: new OCR — captcha solver»

    XRumer20170721

  • ArleneDeepe:

    Принципиально новое обновление «XRumer 16.0 + XEvil»:
    автораспознавание бесплатно и быстро капч Гугла, Yandex, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других типов капчи,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Интересно — ищите в YouTube «XEvil: new OCR — captcha solver»

    XRumer20170721

  • Flossiecon:

    Нейросетевое обновление «XRumer 16.0 + XEvil 3.0″:
    решение бесплатно и быстро капчи Google, Yandex, Фэйсбука, ВКонтакте, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других видов captchas,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Интересно — ищите в YouTube «XEvil: new OCR — captcha solver»

    XRumer20170725

  • Flossiecon:

    Революционное обновление «XRumer 16.0 + XEvil»:
    распознавание бесплатно и быстро captchas Google, Yandex, Facebook, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других видов капч,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Интересно — ищите в Ютубе «XEvil: new OCR — captcha solver»

    XRumer20170725

  • Flossiecon:

    Нейросетевое обновление «XRumer 16.0 + XEvil 3.0″:
    обход бесплатно и быстро капч Google, Яндекса, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других типов captchas,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Интересно — см. в Ютубе «XEvil: new OCR — captcha solver»

    XRumer20170725

  • Flossiecon:

    Революционное обновление «XRumer 16.0 + XEvil»:
    распознавание бесплатно и быстро captchas Google, Яндекса, Фэйсбука, ВКонтакте, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других типов капч,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Интересно? см. в Ютубе «XEvil: new OCR — captcha solver»

    XRumer20170725

  • Flossiecon:

    Нейросетевое обновление «XRumer 16.0 + XEvil»:
    взлом бесплатно и быстро капчи Гугла, Яндекса, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
    а также свыше 8400 других видов капчи,
    с высокой скоростью — 100 изображений в секунду, и точностью — 80%..100%.
    В XEvil 3.0 реализовано подключение любых SEO/SMM программ — XRumer, GSA, ZennoPoster, VKBot, A-Parser,
    и многих других. Готовится абсолютно бесплатная демо-версия. Интересно? см. в YouTube «XEvil: new OCR — captcha solver»

    XRumer20170725

Добавить комментарий для Иван Отменить ответ


(обязательно)