parseInt() i parseFloat() w JavaScript

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Funkcje parseInt() i parseFloat() służą do zamiany napisu na liczbę. Są często używane, gdy dane pochodzą z formularza, funkcji prompt() albo z pliku tekstowego, ponieważ takie wartości zwykle mają typ string.

parseInt()

parseInt() zamienia napis na liczbę całkowitą. Część ułamkowa zostaje pominięta.

console.log(parseInt("25"));      // 25
console.log(parseInt("25.8"));    // 25
console.log(parseInt("12px"));    // 12

Jeżeli napis nie zaczyna się od liczby, wynikiem będzie NaN:

console.log(parseInt("abc")); // NaN

parseFloat()

parseFloat() zamienia napis na liczbę zmiennoprzecinkową, czyli może uwzględniać część ułamkową.

console.log(parseFloat("25.8")); // 25.8
console.log(parseFloat("3.14")); // 3.14
console.log(parseFloat("12px")); // 12

Różnica między parseInt() a parseFloat()

Najważniejsza różnica dotyczy liczb ułamkowych:

let x = "4.75";

console.log(parseInt(x));   // 4
console.log(parseFloat(x)); // 4.75

Związek z NaN

Obie funkcje mogą zwrócić NaN, jeśli konwersja na liczbę się nie powiedzie:

let dane = "tekst";
let liczba = parseFloat(dane);

console.log(liczba); // NaN

Na egzaminie warto pamiętać, że samo użycie parseFloat() zamiast parseInt() na zmiennej liczbowej nie powoduje automatycznie NaN. NaN pojawia się głównie wtedy, gdy JavaScript nie potrafi uzyskać poprawnej liczby.