ketikdata number atau double mewakili angka float berteknologi ganda (64-bit) yang akurat.Angka bisa berkisar dari -1.7 * 10 308 hingga 1.7 * 10 308 (sekitar 15 digit presisi, positif atau negatif).
Ditandatangani dan tidak ditandatangani
Tanda dari nomor menunjukkan apakah itu positif atau negatif.Sebagai contoh, 1 adalah positif dan -1 adalah negatif.Di Luau, nomor -0 adalah sama dengan 0 .
print(0 == -0) --> benarprint(-0 > 1) --> salahprint(-0 < 1) --> benarprint(-0 > -1) --> benarprint(-0 < -1) --> false
Klasifikasi angka
Luau tidak membedakan antara bilangan bulat dan angka, tetapi referensi API terkadang membedakan di antara mereka untuk lebih spesifik tentang cara menggunakan setiap API.
melayang
Tipe angka float merujuk pada angka nyata dengan tempat desimal.Dalam ketentuanilmu komputer, mereka adalah angka titik mengambang tunggal (32-bit) yang tidak seakurat angka titik mengambang dua kali lipat, tetapi cukup akurat untuk sebagian besar kasus penggunaan dan membutuhkan lebih sedikit memori dan penyimpanan.
int
ketikangka integer , atau int , merujuk pada angka keseluruhan 32-bit, yang berkisar dari -2 31 hingga 2 31 - 1.Properti dan fungsi yang mengharapkan bilangan bulat dapat secara otomatis membulatkan atau meningkatkan kesalahan saat Anda menugaskan atau melewati bilangan bulat kepada mereka.
int64
Jenis bilangan int64 memiliki referensi ke bilangan 64-bit tersigned, yang berkisar dari -2 63 hingga 2 63 - 1.Tipe integer ini umum untuk metode yang menggunakan nomor ID dari situs web Roblox.Sebagai contoh, Player.UserId adalah int64 , dan MarketplaceService:PromptPurchase() dan TeleportService:Teleport() masing-masing mengharapkan int64 untuk argumen ID.
Notasi
Angka ditulis dengan angka paling signifikan terlebih dahulu (big-endian): Ada beberapa cara untuk menulis literal angka di Luau:
- Desimal (base-10) — Tulis digit angka dengan biasa menggunakan digit 0–9 dengan satu titik desimal opsional, misalnya 7 , 1.25 , atau -22.5 .
- Notasi ilmiah — Tulis angka desimal diikuti oleh e atau e+ , kemudian bilangan bulat untuk meningkatkan angka desimal ke daya 10.Sebagai kejadian, 12e3 adalah 12 × 10^3 (12.000).
- Hexadecimal (base-16) — Mulai nomor dengan 0x diikuti oleh angka 0–9 atau A–F (pengejaan besar diabaikan).Sebagai contoh, 0xF adalah 15 dan 0x3FC adalah 1020.
- Biner (basis-2) — Mulai nomor dengan 0b diikuti oleh 0 atau 1, misalnya 0b1100 (12 dalam format desimal).
Operasi
Anda dapat menggunakan operator logis dan relasional untuk memanipulasi dan membandingkan angka.Anda juga dapat menggunakan fungsi matematika seperti math.sqrt() dan math.exp() di perpustakaan math dan operasi bitwise di perpustakaan bit32.
Jenis introspeksi
Anda dapat menentukan apakah nilai x adalah angka dengan menggunakan type(x) atau typeof(x) .Keduanya mengembalikan string number jika x adalah angka.
local testInt = 5local testDecimal = 9.12761656local testString = "Hello"print(type(testInt)) --> nomorprint(type(testDecimal)) --> nomorprint(type(testString)) --> stringprint(typeof(testInt)) --> nomorprint(typeof(testDecimal)) --> nomorprint(typeof(testString)) --> string
Fungsi bulat
Anda dapat membulatkan angka menggunakan math.floor() , math.ceil() , atau math.modf() .Fungsi ini mengembalikan hasil bilangan bulat jika Luau dapat mewakili sebagai bilangan bulat.Jika angka terlalu besar, Luau mengembalikannya sebagai float.
- Untuk menentukan apakah angka x adalah bilangan bulat, gunakan math.floor(x) == x .
- Untuk membulatkan angka ke bawah, gunakan math.floor() .
- Untuk membulatkan angka ke atas, gunakan math.ceil() .
- Untuk membulatkan angka menuju nol, gunakan math.modf(). Ini juga mengembalikan perbedaan fraksional dari angka bulat sebagai hasil kedua.
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