Как да конвертирате низ в число в 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“, radix е 16 (шестнадесетичен), а останалата част от низа се анализира.
  • Ако входът stringзапочва с „0“, радиксът е осем (осмичен) или 10 (десетичен). Кой точно радикс е избран зависи от изпълнението. ECMAScript 5 посочва, че се използва 10 (десетична), но все още не всички браузъри поддържат това. Поради тази причина винаги посочвайте radix, когато използвате 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
  • Number () ще преобразува в число, от което стойността може да бъде представена. Това включва дати в броя на милисекундите от полунощ на 1 януари 1970 г. UTC, булеви стойности на 1 или 0 и стойности, които не могат да бъдат преобразувани в разпознаваем номер, ще станат NaN. Това означава Not a Number и също технически е число!