Liczby

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Typ danych liczba, lub double, reprezentuje liczbę zmiennoprzecinkową podwójnej precyzji (64-bitową). Liczby mogą mieć zakres od -1.7 * 10308 do 1.7 * 10308 (około 15 cyfr precyzji, dodatnich lub ujemnych).

Liczby ze znakiem i bez znaku

Znak liczby wskazuje, czy jest ona dodatnia, czy ujemna. Na przykład 1 jest dodatnie, a -1 jest ujemne. W Luau liczba -0 jest równa 0.


print(0 == -0) --> true
print(-0 > 1) --> false
print(-0 < 1) --> true
print(-0 > -1) --> true
print(-0 < -1) --> false

Klasyfikacje liczb

Luau nie rozróżnia między liczbami całkowitymi a liczbami zmiennoprzecinkowymi, ale dokumentacja API czasami je rozróżnia, aby być bardziej konkretna na temat użycia każdego API.

float

Typ liczby float odnosi się do liczby rzeczywistej z miejscem dziesiętnym. W terminach informatycznych są to liczby zmiennoprzecinkowe pojedynczej precyzji (32-bitowe), które nie są tak precyzyjne jak liczby zmiennoprzecinkowe podwójnej precyzji, ale są wystarczająco precyzyjne dla większości zastosowań i wymagają mniej pamięci i miejsca na dysku.

int

Typ liczby integer, lub int, odnosi się do 32-bitowej liczby całkowitej, która ma zakres od -231 do 231 - 1. Właściwości i funkcje, które oczekują liczb całkowitych, mogą automatycznie zaokrąglać lub zgłaszać błędy, gdy przypisujesz lub przekazujesz im liczby niecałkowite.

int64

Typ liczby int64 odnosi się do podpisanej 64-bitowej liczby całkowitej, która ma zakres od -263 do 263 - 1. Ten typ liczby całkowitej jest powszechny w metodach, które korzystają z identyfikatorów ID z witryny Roblox. Na przykład Player.UserId jest int64, a MarketplaceService:PromptPurchase() i TeleportService:Teleport() oczekują int64 dla argumentów identyfikatora.

Notacja

Liczby są notowane z najważniejszymi cyframi na początku (big-endian). Istnieje kilka sposobów notowania literali liczbowych w Luau:

  • Dziesiętny (podstawa 10) — Zapisz cyfry liczby normalnie, używając cyfr 0–9 z pojedynczym opcjonalnym miejscem dziesiętnym, na przykład 7, 1.25 lub -22.5.
  • Notacja naukowa — Zapisz liczbę dziesiętną po e lub e+, a następnie liczbę całkowitą, aby podnieść liczbę dziesiętną do potęgi 10. Na przykład 12e3 to 12 × 10^3 (12 000).
  • Szesnastkowy (podstawa 16) — Rozpocznij liczbę od 0x, a następnie cyfry 0–9 lub A–F (wielkość liter ignorowana). Na przykład 0xF to 15, a 0x3FC to 1020.
  • Binarny (podstawa 2) — Rozpocznij liczbę od 0b, a następnie 0s lub 1s, na przykład 0b1100 (12 w formacie dziesiętnym).

Operacje

Możesz używać logicznych i relacyjnych operatorów do manipulowania i porównywania liczb. Możesz także używać funkcji matematycznych, takich jak math.sqrt() i math.exp() w bibliotece math oraz operacji bitowych w bibliotece bit32.

Introspekcja typów

Możesz ustalić, czy wartość x jest liczbą za pomocą type(x) lub typeof(x). Obie zwracają ciąg number, jeśli x jest liczbą.


local testInt = 5
local testDecimal = 9.12761656
local testString = "Hello"
print(type(testInt)) --> number
print(type(testDecimal)) --> number
print(type(testString)) --> string
print(typeof(testInt)) --> number
print(typeof(testDecimal)) --> number
print(typeof(testString)) --> string

Funkcje zaokrąglania

Możesz zaokrąglać liczby, używając math.floor(), math.ceil(), lub math.modf(). Te funkcje zwracają wynik całkowity, jeśli Luau może to przedstawić jako liczbę całkowitą. Jeśli liczba jest zbyt duża, Luau zwraca ją jako float.

  • Aby określić, czy liczba x jest liczbą całkowitą, użyj math.floor(x) == x.
  • Aby zaokrąglić liczbę w dół, użyj math.floor().
  • Aby zaokrąglić liczbę w górę, użyj math.ceil().
  • Aby zaokrąglić liczbę w kierunku zera, użyj math.modf(). Zwraca również różnicę ułamkową zaokrąglonej liczby jako drugi wynik.

print(math.floor(3.3)) --> 3
print(math.floor(-3.3)) --> -4
print(math.ceil(3.3)) --> 4
print(math.ceil(-3.3)) --> -3
print(math.modf(3.3)) --> 3 0.2999999999999998
print(math.modf(-3.3)) --> -3 -0.2999999999999998
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.