Angka

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tipe data angka, atau double, mewakili angka titik mengambang presisi ganda (64-bit). Angka bisa berkisar dari -1.7 * 10308 hingga 1.7 * 10308 (sekitar 15 digit presisi, positif atau negatif).

Ditandatangani dan tidak ditandatangani

Tanda dari angka menunjukkan apakah itu positif atau negatif. Misalnya, 1 adalah positif dan -1 adalah negatif. Di Luau, angka -0 setara dengan 0.


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

Klasifikasi angka

Luau tidak membedakan antara bilangan bulat dan angka, tetapi referensi API kadang-kadang membedakan keduanya untuk lebih spesifik tentang cara menggunakan setiap API.

float

Tipe angka float mengacu pada angka riil dengan tempat desimal. Dalam istilah ilmu komputer, mereka adalah angka titik mengambang presisi tunggal (32-bit), yang tidak seakurat angka titik mengambang presisi ganda, tetapi cukup akurat untuk sebagian besar kasus penggunaan dan membutuhkan lebih sedikit memori dan penyimpanan.

int

Tipe angka integer, atau int, mengacu pada angka bulat 32-bit, yang berkisar dari -231 hingga 231 - 1. Properti dan fungsi yang mengharapkan bilangan bulat mungkin secara otomatis membulatkan atau mengeluarkan kesalahan saat Anda menetapkan atau mengirimkan bukan bilangan bulat kepada mereka.

int64

Tipe angka int64 mengacu pada bilangan bulat bertanda 64-bit, yang berkisar dari -263 hingga 263 - 1. Jenis bilangan bulat ini umum digunakan untuk metode yang menggunakan nomor ID dari situs web Roblox. Misalnya, Player.UserId adalah int64, dan MarketplaceService:PromptPurchase() serta TeleportService:Teleport() masing-masing mengharapkan int64 untuk argumen ID.

Notasi

Angka ditulis dengan digit yang paling signifikan terlebih dahulu (big-endian). Ada beberapa cara untuk menuliskan literal angka di Luau:

  • Desimal (basis-10) — Tulis digit dari angka secara normal 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+, lalu bilangan bulat untuk mengangkat angka desimal ke pangkat 10. Misalnya, 12e3 adalah 12 × 10^3 (12.000).
  • Heksadesimal (basis-16) — Mulai angka dengan 0x diikuti oleh digit 0–9 atau A–F (kapitalisasi diabaikan). Misalnya, 0xF adalah 15 dan 0x3FC adalah 1020.
  • Biner (basis-2) — Mulai angka dengan 0b diikuti oleh 0s atau 1s, misalnya 0b1100 (12 dalam format desimal).

Operasi

Anda dapat menggunakan operator logika dan relasional untuk memanipulasi dan membandingkan angka. Anda juga dapat menggunakan fungsi matematika seperti math.sqrt() dan math.exp() dalam perpustakaan math serta operasi bitwise dalam perpustakaan bit32.

Introspeksi tipe

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 = 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

Fungsi bulat

Anda dapat membulatkan angka menggunakan math.floor(), math.ceil(), atau math.modf(). Fungsi-fungsi ini mengembalikan hasil integer jika Luau dapat merepresentasikannya sebagai integer. Jika angkanya 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 selisih pecahan dari angka yang dibulatkan sebagai hasil kedua.

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, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.