sayı veri yazveya , bir çift hassasiyetli (64 bit) yüzdelik sayı temsil eder.Sayılar -1.7 * 10 308 ile 1.7 * 10 308 (yaklaşık 15 sayısal ondalık, pozitif veya negatif) arasında değişebilir.
İmzalanmış ve imzalanmamış
Sayının işareti pozitif veya negatif olup olmadığını gösterir.Örneğin, 1 pozitif ve -1 negatifdir.Luau'da, sayı -0 , 0 'e eşdeğerdir.
print(0 == -0) --> doğruprint(-0 > 1) --> falseyorumlar:no commentsprint(-0 < 1) --> doğruprint(-0 > -1) --> doğruprint(-0 < -1) --> false
Sayı sınıfları
Luau sayılar ve tamsayılar arasında ayrım yapmaz, ancak API referansı bazen her bir API'nin nasıl kullanılacağıyla ilgili daha spesifik olmak için aralarında ayrım yapar.
yüz
float sayı türü bir ondalık dünyabirlikte gerçek bir sayıya işaret eder.Bilgisayar bilimleri koşullargöre, bunlar tek doğruluklu (32-bit) yüzde düşük nokta sayısıdır, ki bu double-precision yüzde düşük nokta sayıları kadar kesin değildir, ancak çoğu kullanım durumu için yeterince kesindir ve daha az hafıza ve depolama gerektirir.
int yazım tarihi: 2020-04-02
The integer sayı yazveya int , -2 31 ile 2 31 - 1 arasında değişen 32-bit bir bütün sayıya işaret eder.Tamsayı bekleyen özellikler ve işlevler, onlara tamsayı değil sayıları atadığınızda veya geçtiğinizde otomatik olarak yuvarlanabilir veya hata yüksek olabilir. Properties and functions that expect integers may automatically round or raise errors when you assign or pass non-integers to them.
int64
The int64 sayı türü imzalı 64-bit bir sayıya işaret eder, ki bu -2 63 ile 2 63 - 1 arasında değişir.Bu tür bir sayısal değer, Roblox web sitesinden kimlik numaralarını kullanan yöntemler için yaygındır.Örneğin, Player.UserId bir int64 ve MarketplaceService:PromptPurchase() ve TeleportService:Teleport() her biri ID argümanları için int64 bekliyor.
Sembolizasyon
Sayılar ilk önce en önemli sayılarla not edilir (büyük uç). Luau'da sayısal ifadeleri not etmenin birden fazla yolu vardır:
- Ondalık (base-10) — Sayının sayılarını normalde 0–9'dan tek bir zorunlu ondalık noktası kullanarak yazın, örneğin 7 , 1.25 veya -22.5 .
- Bilimsel notasyon — Bir ondalık sayıyı e veya e+ ile takip eden bir sayı yazın, ardından ondalık sayıyı 10'un bir gücüne yükseltmek için bir sayı.durum, 12e3 12 × 10^3 (12,000) dir.
- Altıgen (temel-16) — Sayıyı 0x ile başlat ve ardından 0–9 veya A–F (başlıklar göz ardı edilir) sayıları takip edin.Örneğin, 0xF 15'dir ve 0x3FC 1020'dir.
- Kodlanmış (base-2) — Sayıyı 0b 0 veya 1'le takip eden 0 veya 1 ile başlatın, örneğin 0b1100 (12 onsal format).
Operasyonlar
Sayıları manipüle 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 işlevleri math kütüphanesinde ve bit32 kütüphanesinde bitwise işlemlerini kullanabilirsiniz.
İntrospeksiyon türü yaz
Bir değerin x veya type(x) veya typeof(x) kullanarak bir sayı olup olmadığını belirleyebilirsiniz.Her ikisi de number bir sayıysa dizeyi döndürür, x eğer bir sayıysa.
local testInt = 5local testDecimal = 9.12761656local testString = "Hello"print(type(testInt)) --> sayıprint(type(testDecimal)) --> sayıprint(type(testString)) --> diziprint(typeof(testInt)) --> sayıprint(typeof(testDecimal)) --> sayıprint(typeof(testString)) --> string
Daire işlevleri
Sayıları math.floor() , math.ceil() veya math.modf() kullanarak yuvarlayabilirsiniz.Bu işlevler, Luau bunu bir tamsayı olarak temsil edebilirse bir tamsayı sonucu döndürür.Sayı çok büyükse, Luau bunu bir float olarak iade eder.
- Bir sayı x bir tamsayı mı yoksa değil mi belirlemek için, math.floor(x) == x kullanın.
- Bir sayıyı düşürmek için, math.floor() kullanın.
- Bir sayıyı yuvarlanmak için, math.ceil() kullanın.
- Bir sayıyı sıfıra yuvarlanmak için, math.modf() kullanın. Ayrıca yuvarlanan sayının kesir farkını ikinci bir sonuç olarak da döndürür.
print(math.floor(3.3)) --> 3print(math.floor(-3.3)) --> -4print(math.ceil(3.3)) --> 4print(math.ceil(-3.3)) --> -3print(math.modf(3.3)) --> 3 0.2999999999999998print(math.modf(-3.3)) --> -3 -0.2999999999999998