หมายเลข

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ประเภทข้อมูล หมายเลข หรือ double แทนหมายเลข ทศนิยมความแม่นยำคู่ (64-bit) หมายเลขสามารถอยู่ในช่วงจาก -1.7 * 10308 ถึง 1.7 * 10308 (ประมาณ 15 หลักความแม่นยำ ทั้งบวกและลบ)

ลงชื่อและไม่ลงชื่อ

เครื่องหมายของหมายเลขระบุว่ามันเป็นบวกหรือลบ ตัวอย่างเช่น 1 เป็นบวกและ -1 เป็นลบ ใน Luau หมายเลข -0 เป็นเทียบเท่ากับ 0


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

การจำแนกประเภทหมายเลข

Luau ไม่แยกความแตกต่างระหว่างจำนวนเต็มและหมายเลข แต่การอ้างอิง API บางครั้งจะแยกความแตกต่างระหว่างทั้งสองเพื่อให้เฉพาะเจาะจงมากขึ้นเกี่ยวกับวิธีการใช้ API แต่ละอัน

float

ประเภทหมายเลข float หมายถึงหมายเลขจริงที่มีจุดทศนิยม ในแง่ของวิทยาศาสตร์คอมพิวเตอร์ พวกเขาคือ หมายเลขทศนิยมความแม่นยำเดี่ยว (32-bit) ซึ่งไม่แม่นยำเท่าหมายเลขทศนิยมความแม่นยำคู่ แต่มีความแม่นยำเพียงพอสำหรับการใช้งานส่วนใหญ่และต้องการหน่วยความจำและการเก็บข้อมูลน้อยกว่า

int

ประเภทหมายเลข integer หรือ int หมายถึงหมายเลขทั้งหมด 32-bit ซึ่งอยู่ในช่วงจาก -231 ถึง 231 - 1 คุณสมบัติและฟังก์ชันที่คาดหวังจำนวนเต็มอาจโดยอัตโนมัติรอบหรือเกิดข้อผิดพลาดเมื่อคุณกำหนดหรือส่งค่าไม่ใช่จำนวนเต็มให้กับพวกเขา

int64

ประเภทหมายเลข int64 หมายถึงจำนวนเต็ม 64-bit ที่มีเครื่องหมาย ซึ่งอยู่ในช่วงจาก -263 ถึง 263 - 1 ประเภทจำนวนเต็มนี้เป็นที่นิยมสำหรับวิธีการที่ใช้หมายเลข ID จากเว็บไซต์ Roblox ตัวอย่างเช่น Player.UserId เป็น int64 และ MarketplaceService:PromptPurchase() และ TeleportService:Teleport() ต่างก็คาดหวัง int64 สำหรับอาร์กิวเมนต์ ID

การบันทึก

หมายเลขจะถูกบันทึกโดยมีหมายเลขที่มีความสำคัญที่สุดก่อน (big-endian) มีหลายวิธีในการบันทึกอักษรหมายเลขใน Luau:

  • ทศนิยม (ฐาน-10) — เขียนตัวเลขตามปกติใช้ตัวเลข 0–9 พร้อมจุดทศนิยมเดียวที่เลือกได้ เช่น 7, 1.25 หรือ -22.5.
  • การบันทึกทางวิทยาศาสตร์ — เขียนหมายเลขทศนิยมตามด้วย e หรือ e+ แล้วตามด้วยจำนวนเต็มเพื่อยกหมายเลขทศนิยมไปยังพลังของ 10 เช่น 12e3 เท่ากับ 12 × 10^3 (12,000).
  • เลขฐานสิบหก (ฐาน-16) — เริ่มหมายเลขด้วย 0x ตามด้วยตัวเลข 0–9 หรือ A–F (ไม่คำนึงถึงการใช้ตัวพิมพ์ใหญ่) เช่น 0xF เท่ากับ 15 และ 0x3FC เท่ากับ 1020.
  • เลขฐานสอง (ฐาน-2) — เริ่มหมายเลขด้วย 0b ตามด้วย 0 หรือ 1 เช่น 0b1100 (12 ในรูปแบบทศนิยม).

การดำเนินการ

คุณสามารถใช้ ตัวดำเนินการ ทางตรรกะและเปรียบเทียบในการจัดการและเปรียบเทียบหมายเลข คุณยังสามารถใช้ฟังก์ชันทางคณิตศาสตร์ เช่น math.sqrt() และ math.exp() ในไลบรารี math และการดำเนินการแบบบิตในไลบรารี bit32

การตรวจสอบประเภท

คุณสามารถกำหนดได้ว่าค่า x เป็นหมายเลขหรือไม่ โดยใช้ type(x) หรือ typeof(x) ทั้งคู่จะส่งคืนสตริง number หาก x เป็นหมายเลข


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

ฟังก์ชันการปัดเศษ

คุณสามารถปัดเลขโดยใช้ math.floor(), math.ceil(), หรือ math.modf() ฟังก์ชันเหล่านี้ส่งคืนผลลัพธ์เป็นจำนวนเต็มหาก Luau สามารถแทนที่ด้วยจำนวนเต็ม หากหมายเลขมีขนาดใหญ่เกินไป Luau จะส่งคืนเป็น float

  • เพื่อตรวจสอบว่าหมายเลข x เป็นจำนวนเต็มหรือไม่ ใช้ math.floor(x) == x.
  • เพื่อปัดคะแนนลง ใช้ math.floor().
  • เพื่อปัดคะแนนขึ้น ใช้ math.ceil().
  • เพื่อปัดคะแนนไปยังศูนย์ ให้ใช้ math.modf() ซึ่งยังส่งคืนความแตกต่างของเศษส่วนของหมายเลขที่ปัดให้เป็นผลลัพธ์ที่สองด้วย

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, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ