Преобразуване на низове в числа
Най 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 и също технически е число!