Javascript Number – wszystko, co musisz wiedzieć o liczbach w JavaScript
JavaScript jest jednym z najczęściej używanych języków programowania, szczególnie w kontekście aplikacji webowych. Wśród wielu typów danych, które są dostępne w tym języku, jednym z najważniejszych jest typ "number". Czym dokładnie są liczby w JavaScript? Jak je wykorzystać w codziennej pracy programisty? Oto kompletny przewodnik po typie "number", w którym przyjrzymy się jego właściwościom, sposobom konwersji, operacjom matematycznym i najczęstszym błędom, które mogą wystąpić. Zaczynajmy!
1. Co to jest typ "number" w JavaScript?
W JavaScript typ "number" jest jednym z podstawowych typów danych. Jest wykorzystywany do przechowywania liczb, zarówno całkowitych, jak i zmiennoprzecinkowych. W przeciwieństwie do wielu innych języków programowania, JavaScript nie rozróżnia osobnych typów dla liczb całkowitych i zmiennoprzecinkowych. Zarówno liczby 1, jak i 1.5 są traktowane jako liczby typu "number".
Warto dodać, że typ "number" w JavaScript nie jest ograniczony przez wielkość zmiennej w tradycyjny sposób. Zamiast tego korzysta z 64-bitowego formatu zmiennoprzecinkowego, który jest zgodny z IEEE 754. Oznacza to, że może przechowywać bardzo duże lub bardzo małe liczby z pewną dokładnością. Jednakże, z uwagi na sposób reprezentacji liczb w pamięci, czasami mogą wystąpić błędy zaokrągleń, o czym za chwilę opowiemy.
2. Jak tworzyć liczby w JavaScript?
Tworzenie liczb w JavaScript jest bardzo proste. Liczby mogą być zapisywane bezpośrednio w kodzie, np.:
let liczbaCałkowita = 42; let liczbaZmiennoprzecinkowa = 3.14;
Warto zauważyć, że JavaScript automatycznie rozpozna, czy mamy do czynienia z liczbą całkowitą, czy zmiennoprzecinkową, na podstawie zapisu. Można też używać liczb w zapisie naukowym, np.:
let liczbaNaukowa = 1e6; // to samo co 1000000 let liczbaUjemna = -3.5; // liczba zmiennoprzecinkowa
Oprócz zapisu liczby możemy również stworzyć ją za pomocą funkcji `Number()`, która konwertuje wartości, które mogą być traktowane jako liczba, np. łańcuchy znaków. Jeśli wartość nie jest liczbą, wynik będzie `NaN` (Not a Number):
let liczba = Number("123"); // wynik: 123
let nieLiczba = Number("abc"); // wynik: NaN
3. Jakie operacje matematyczne można wykonać na liczbach w JavaScript?
JavaScript oferuje wiele operatorów matematycznych, które można wykorzystać do manipulowania liczbami. Wśród podstawowych operatorów matematycznych, które obsługuje JavaScript, znajdziesz:
- Dodawanie (+) – wykonuje dodawanie dwóch liczb.
let wynik = 5 + 10; // wynik: 15
let wynik = 20 - 8; // wynik: 12
let wynik = 4 * 3; // wynik: 12
let wynik = 10 / 2; // wynik: 5
let wynik = 7 % 3; // wynik: 1 (7 / 3 = 2 reszta 1)
let wynik = 2 ** 3; // wynik: 8
Warto pamiętać, że w JavaScript dzielenie przez zero nie generuje błędu. Zamiast tego zwraca specjalne wartości: "Infinity" (pozytywna nieskończoność), "-Infinity" (negatywna nieskończoność) lub "NaN", gdy próbujemy wykonać operację na "NaN".
4. Problemy z precyzją liczb zmiennoprzecinkowych
Chociaż JavaScript umożliwia pracę z bardzo dużymi i bardzo małymi liczbami, może pojawić się problem z precyzją, szczególnie w przypadku liczb zmiennoprzecinkowych. Problem ten wynika z ograniczeń reprezentacji liczb zmiennoprzecinkowych w standardzie IEEE 754. Na przykład, jeśli spróbujemy dodać dwie liczby zmiennoprzecinkowe, wynik może być lekko nieprecyzyjny:
let wynik = 0.1 + 0.2; console.log(wynik); // wynik: 0.30000000000000004
Choć wynik wydaje się zbliżony do oczekiwanego (0.3), w rzeczywistości wynik jest minimalnie inny. Można temu zaradzić, stosując zaokrąglanie do odpowiedniej liczby miejsc po przecinku:
let wynik = Math.round((0.1 + 0.2) * 100) / 100; // wynik: 0.3
5. Konwersje typów danych na liczby
W JavaScript bardzo często zachodzi potrzeba konwersji różnych typów danych na liczby, zwłaszcza wtedy, gdy operujemy na danych pochodzących z formularzy, z API lub z innych źródeł, które zwracają wartości w postaci łańcuchów tekstowych. W tym celu można używać różnych metod:
- parseInt() – konwertuje łańcuch tekstowy na liczbę całkowitą. Można także podać podstawę liczby (np. dziesiętną, ósemkową, szesnastkową).
let liczba = parseInt("42"); // wynik: 42
let liczbaHex = parseInt("1f", 16); // wynik: 31 (16-ny system liczbowy)
let liczba = parseFloat("3.14"); // wynik: 3.14
let liczba = Number("123.45"); // wynik: 123.45
6. Najczęstsze błędy przy pracy z liczbami w JavaScript
Podczas pracy z liczbami w JavaScript mogą pojawić się błędy, które warto znać:
- Problemy z precyzją – jak wspomniano wcześniej, liczby zmiennoprzecinkowe mogą być nieprecyzyjne w wyniku ograniczeń IEEE 754.
- Konwersja typu – należy uważać przy konwersji typów, zwłaszcza w przypadku wartości logicznych i łańcuchów, które mogą prowadzić do błędów.
- Nieoczekiwane wartości "NaN" – warto zawsze sprawdzać, czy wynik operacji jest liczbą, używając metody `isNaN()`.
7. Podsumowanie
Typ "number" w JavaScript to niezwykle ważny element, który pozwala na przechowywanie i manipulowanie liczbami. Dzięki prostym operatorom matematycznym i funkcjom konwersji typów możemy efektywnie operować na liczbach. Pamiętaj jednak o problemach z precyzją i o tym, że JavaScript traktuje wszystkie liczby zmiennoprzecinkowe jako jeden typ "number". Poznanie tych podstaw pomoże Ci uniknąć wielu powszechnych błędów, a także skutecznie pracować z liczbami w Twoich aplikacjach!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!