Sayılar

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

number veri tipi veya double, bir çift hassasiyetli (64-bit) kayan nokta sayısını temsil eder. Sayılar -1.7 * 10308 ile 1.7 * 10308 (yaklaşık 15 basamak hassasiyet, pozitif veya negatif) arasında değişebilir.

İşaretli ve işaretsiz

Bir sayının işareti, onun pozitif mi yoksa negatif mi olduğunu gösterir. Örneğin, 1 pozitiftir ve -1 negatiftir. Luau'da, -0 sayısı 0 ile eşdeğerdir.


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

Sayı sınıflandırmaları

Luau, tam sayılar ile sayılar arasında ayrım yapmaz, ancak API referansı bazen her API'nin nasıl kullanılacağı hakkında daha spesifik olmak için bunlar arasında ayrım yapar.

float

float sayı tipi, ondalık noktalı bir reel sayıyı ifade eder. Bilgisayar bilimleri terimleriyle, bunlar tek hassasiyetli (32-bit) kayan nokta sayısı olup, çift hassasiyetli kayan nokta sayılarına göre daha az hassas olsa da, çoğu kullanım durumu için yeterince hassastır ve daha az bellek ve depolama alanı gerektirir.

int

integer sayı tipi veya int, -231 ile 231 - 1 arasında değişen 32-bit tam sayıyı ifade eder. Tam sayı bekleyen özellikler ve fonksiyonlar, onlara tam sayı olmayan değerler atadığınızda veya geçirdiğinizde otomatik olarak yuvarlayabilir veya hata verebilir.

int64

int64 sayı tipi, -263 ile 263 - 1 arasında değişen işaretli 64-bit tam sayıyı ifade eder. Bu tür bir tam sayı, Roblox web sitesinden alınan kimlik numaralarını kullanan yöntemler için sıkça kullanılır. Örneğin, Player.UserId bir int64'tür ve MarketplaceService:PromptPurchase() ile TeleportService:Teleport() her biri kimlik argümanları için int64 bekler.

Notasyon

Sayılar en önemli basamaklar önce gelecek şekilde (big-endian) yazılır. Luau'da sayı literallerini yazmanın birden fazla yolu vardır:

  • Ondalık (taban-10) — Sayının basamaklarını normal olarak 0–9 rakamları ile ve bir tane isteğe bağlı ondalık nokta kullanarak yazın, örneğin 7, 1.25 veya -22.5.
  • Bilimsel notasyon — Bir ondalık sayıyı e veya e+ ile yazın, ardından ondalık sayıyı 10'un bir kuvvetine yükseltmek için bir tam sayı ekleyin. Örneğin, 12e3, 12 × 10^3` (12,000) eder.
  • Onaltılık (taban-16) — Sayıyı 0x ile başlayıp 0–9 veya A–F rakamları ile devam ettirin (büyük/küçük harf duyarsızdır). Örneğin, 0xF 15'tir ve 0x3FC 1020'dir.
  • İkilik (taban-2) — Sayıyı 0b ile başlayıp 0 veya 1'ler ekleyin, örneğin 0b1100 (10'luk sistemde 12).

İşlemler

Sayılara müdahale etmek ve karşılaştırmak için mantıksal ve ilişkisel operatörleri kullanabilirsiniz. Ayrıca, math.sqrt() ve math.exp() gibi matematiksel fonksiyonları math kütüphanesinde ve bit düzeyinde işlemleri bit32 kütüphanesinde kullanabilirsiniz.

Tip incelemesi

Bir değerin x sayı olup olmadığını belirlemek için type(x) veya typeof(x) kullanabilirsiniz. Her iki fonksiyon da x bir sayıysa number döner.


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

Yuvarlama fonksiyonları

Sayıları math.floor(), math.ceil() veya math.modf() kullanarak yuvarlayabilirsiniz. Bu fonksiyonlar, Luau bunu bir tam sayı olarak temsil edebiliyorsa tam sayı sonucu döner. Sayı çok büyükse, Luau bunu bir float olarak döner.

  • Bir sayının x tam sayı olup olmadığını belirlemek için math.floor(x) == x kullanın.
  • Bir sayıyı aşağı yuvarlamak için math.floor() kullanın.
  • Bir sayıyı yukarı yuvarlamak için math.ceil() kullanın.
  • Bir sayıyı sıfıra doğru yuvarlamak için math.modf() kullanın. Bu fonksiyon ayrıca, yuvarlanan sayının kesirli farkını ikinci bir sonuç olarak döner.

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. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.