Liczby całkowite i zmiennoprzecinkowe
Dowiedzą się Państwo, jak Lua reprezentuje liczby.
Liczby całkowite i zmiennoprzecinkowe to bezpłatna lekcja Lua Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Lua Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Lua Academy zawiera 4 lekcji w sumie.
Liczby w Lua
W Lua typ number przechowuje wszystkie rodzaje wartości liczbowych. Liczby służą do zliczania elementów, mierzenia wartości i wykonywania obliczeń.
Począwszy od Lua 5.3, liczby występują w dwóch odmianach: całkowite (bez części ułamkowej) i zmiennoprzecinkowe (z częścią dziesiętną).
Na początek wyświetlmy kilka liczb.
print(10)
print(3.14)Czym jest liczba całkowita?
Liczba całkowita to liczba bez części ułamkowej, taka jak 0, 42 lub -7.
Gdy zapisują Państwo liczbę bez kropki dziesiętnej, Lua traktuje ją jako liczbę całkowitą.
5to liczba całkowita-100to liczba całkowita
local apples = 5
print(apples)Czym jest liczba zmiennoprzecinkowa?
Liczba zmiennoprzecinkowa (float) może reprezentować wartości ułamkowe, takie jak 3.14 lub 0.5.
Każda liczba zapisana z kropką dziesiętną jest liczbą zmiennoprzecinkową, nawet 2.0.
Liczby zmiennoprzecinkowe pozwalają przechowywać wyniki pomiarów i dzielenia.
local price = 2.5
print(price)Sprawdzanie podtypu
Liczby całkowite i zmiennoprzecinkowe mają wspólną nazwę typu: "number". Aby sprawdzić, jaki podtyp ma dana wartość, należy użyć math.type().
Funkcja zwraca łańcuch "integer", "float" albo nil, jeśli wartość nie jest liczbą.
print(math.type(10))
print(math.type(3.14))type() vs math.type()
Funkcja type() informuje o ogólnym typie. Dla każdej liczby zwraca "number".
Funkcja math.type() podaje bardziej szczegółową informację i rozróżnia liczbę całkowitą od zmiennoprzecinkowej. Należy używać właściwego narzędzia do danego zadania.
print(type(7))
print(math.type(7))Dzielenie zawsze daje liczbę zmiennoprzecinkową
Standardowy operator dzielenia / zawsze zwraca liczbę zmiennoprzecinkową, nawet gdy liczby dzielą się bez reszty.
Dlatego 10 / 2 daje 5.0, a nie 5. Proszę zwrócić uwagę na .0 w wyniku.
print(10 / 2)
print(math.type(10 / 2))Dzielenie z zaokrągleniem w dół
Operatora dzielenia z zaokrągleniem w dół // należy używać, gdy potrzebny jest wynik w postaci liczby całkowitej. Dzieli on liczby i zaokrągla wynik w dół, w kierunku ujemnej nieskończoności.
Jeśli oba operandy są całkowite, wynik również jest całkowity.
print(7 // 2)
print(math.type(7 // 2))Liczby zmiennoprzecinkowe mogą przechowywać wartości całkowite
Liczba zmiennoprzecinkowa może również przechowywać liczbę całkowitą. Wartości 4.0 i 4 są równe, ale podtyp wartości 4.0 nadal wynosi float.
Lua uznaje 4 == 4.0 za true, ponieważ obie wartości mają taką samą wartość liczbową.
print(4 == 4.0)
print(math.type(4.0))Konwersja liczby zmiennoprzecinkowej na całkowitą
Liczbę zmiennoprzecinkową można przekształcić w całkowitą za pomocą math.tointeger(). Funkcja zwraca liczbę całkowitą, jeśli liczba zmiennoprzecinkowa nie ma części ułamkowej; w przeciwnym razie zwraca nil.
Jest to przydatne, gdy interfejs API wymaga prawdziwej liczby całkowitej.
print(math.tointeger(8.0))
print(math.tointeger(8.5))Notacja naukowa
Lua pozwala zapisywać bardzo duże lub bardzo małe liczby zmiennoprzecinkowe w notacji naukowej z użyciem e.
1e3 oznacza 1 times 10 to the power 3, czyli 1000.0. Wynik zawsze jest liczbą zmiennoprzecinkową.
print(1e3)
print(2.5e-2)Zakres liczb całkowitych
Liczby całkowite w Lua są przechowywane na 64 bitach, więc mają bardzo duży, ale skończony zakres. Stałe math.maxinteger i math.mininteger pokazują jego granice.
Liczby zmiennoprzecinkowe mogą reprezentować większe wartości bezwzględne, ale w przypadku dużych liczb całkowitych tracą dokładność.
print(math.maxinteger)
print(math.mininteger)Szybki test
Sprawdźmy, czego nauczyli się Państwo o liczbach całkowitych i zmiennoprzecinkowych.
Podsumowanie
Dowiedzieli się Państwo, że liczby w Lua mają dwa podtypy: całkowite (bez części ułamkowej) i zmiennoprzecinkowe (dziesiętne).
Do ich rozróżniania służy math.type(), operator / zawsze zwraca liczbę zmiennoprzecinkową, a operator // może zachować całkowity charakter wyniku. math.tointeger() wykonuje konwersję, gdy jest to możliwe.
Następnie poznają Państwo dokładniej operatory arytmetyczne.
Ucz się Lua dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 40
- Lekcje
- 159
Często zadawane pytania
Czy lekcja „Liczby całkowite i zmiennoprzecinkowe” jest bezpłatna?
Tak — pełny tekst „Liczby całkowite i zmiennoprzecinkowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Lua Academy, przejdź na CoddyKit PRO. Kurs Lua Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Liczby całkowite i zmiennoprzecinkowe”?
Dowiedzą się Państwo, jak Lua reprezentuje liczby. Ćwiczysz Lua Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Lua Academy?
Nie wymagamy żadnego doświadczenia. Lua Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Liczby całkowite i zmiennoprzecinkowe”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Lua Academy?
Tak. Każda lekcja Lua Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Liczby całkowite i zmiennoprzecinkowe
- Operatory arytmetyczne
- Biblioteka math
- Formatowanie liczb