Як перетворити рядок на число в JavaScript (на прикладах)

Перетворення рядків у числа

parseInt()Функція аналізує строковий аргумент і повертає ціле число , рівне вказане підстави (підстава в математичній системі числення).

parseInt(string, radix);

Параметри

string

Значення для синтаксичного аналізу. Якщо stringаргумент не є рядком, він перетворюється у рядок (за допомогою ToStringабстрактної операції). Провідний пробіл у аргументі рядка ігнорується. '= Radix Ціле число від 2 до 36, яке представляє radix (основу в математичних цифрових системах) вищезазначеного рядка. Вкажіть 10для десяткової системи числення, яку зазвичай використовують люди. Завжди вказуйте цей параметр, щоб уникнути плутанини читача та гарантувати передбачувану поведінку. Різні реалізації дають різні результати, коли радіус не вказаний, як правило, значення за замовчуванням дорівнює 10. Повернути значення Ціле число, проаналізоване із заданого рядка. Якщо перший символ неможливо перетворити в число, NaNповертається.

Опис

parseIntФункція перетворює свій перший аргумент в рядок, аналізує його, і повертає ціле число або NaN. Якщо ні NaN, поверненим значенням буде ціле число, яке є першим аргументом, прийнятим як число у вказаному радіусі (базі). Наприклад, радіус 10 вказує на перетворення з десяткового числа, 8 восьмеричного, 16 шістнадцяткового тощо. Для вище 10вказаних літер букви алфавіту позначають цифри, більші за 9. Наприклад, для шістнадцяткових чисел (основа 16) використовується Aскрізь F.

Якщо parseIntзустрічається символ, який не є числом у вказаному радіусі, він ігнорує його та всі наступні символи та повертає ціле значення, проаналізоване до цієї точки. parseIntусічує числа до цілих значень. Дозволені провідні та кінцеві пробіли.

Оскільки деякі числа включають eсимвол у своєму рядковому поданні (наприклад 6.022e23), використання parseIntдля усічення числових значень дасть несподівані результати при використанні для дуже великих або дуже малих чисел. parseIntне слід використовувати як замінник Math.floor().

Якщо radix дорівнює undefinedабо 0 (або відсутній), JavaScript передбачає таке:

  • Якщо введення stringпочинається з "0x" або "0X", радіус дорівнює 16 (шістнадцятковий), а решта рядка аналізується.
  • Якщо введення stringпочинається з "0", радіус дорівнює восьми (вісімковій) або 10 (десятковій). Точно вибраний радіус залежить від реалізації. ECMAScript 5 визначає, що використовується 10 (десятковий), але ще не всі браузери підтримують це. З цієї причини завжди вказуйте радікс при використанні parseInt.
  • Якщо введення stringпочинається з будь-якого іншого значення, радіус дорівнює 10 (десятковий).
  • Якщо перший символ неможливо перетворити в число, parseInt повертає NaN.

Для арифметичних цілей значення NaN не є числом у будь-якому радіусі. Ви можете викликати функцію isNaN, щоб визначити, чи результатом parseInt є NaN. Якщо NaN передається арифметичним операціям, результатами операції також буде NaN.

Щоб перетворити число у його рядковий літерал у певному радіксі, використовуйте intValue.toString (radix).

Приклади

Використовуючи parseIntнаступні приклади, всі повертають 15:

parseInt(' 0xF', 16); parseInt(' F', 16); parseInt('17', 8); parseInt(021, 8); parseInt('015', 10); // parseInt(015, 10); will return 15 parseInt(15.99, 10); parseInt('15,123', 10); parseInt('FXX123', 16); parseInt('1111', 2); parseInt('15 * 3', 10); parseInt('15e2', 10); parseInt('15px', 10); parseInt('12', 13);

Повертаються наступні приклади NaN:

parseInt('Hello', 8); // Not a number at all parseInt('546', 2); // Digits are not valid for binary representations

Повертаються наступні приклади -15:

parseInt('-F', 16); parseInt('-0F', 16); parseInt('-0XF', 16); parseInt(-15.1, 10) parseInt(' -17', 8); parseInt(' -15', 10); parseInt('-1111', 2); parseInt('-15e1', 10); parseInt('-12', 13);

Повертаються наступні приклади 4:

parseInt(4.7, 10); parseInt(4.7 * 1e22, 10); // Very large number becomes 4 parseInt(0.00000000000434, 10); // Very small number becomes 4

Повертається наступний приклад 224:

parseInt('0e0', 16);

Більше інформації:

parseInt на MDN

  • parseInt () та parseFloat () намагаються перетворити рядок у число, якщо це можливо. Наприклад,var x = parseInt("100"); // x = 100
  • Число () перетворить на число, значенням якого може бути представлене. Сюди входять дати в кількості мілісекунд з півночі 1 січня 1970 р. UTC, логічні значення до 1 або 0, а значення, які неможливо перетворити на впізнаване число, стануть NaN. Це означає Не число, а також технічно число!