พิมพ์หรือ แทนที่ตัวเลขแบบลอยตัวความถูกต้องสูง 64 บิต ตัวเลขสามารถอยู่ในช่วงตั้งแต่ -1.7 * 10 308 ถึง 1.7 * 10 308 (ประมาณ 15 หลักทศนิยมบวกหรือลบ)
ลงนามและไม่ลงนาม
สัญญาณของตัวเลขบ่งบอกว่ามันเป็นบวกหรือเป็นลบตัวอย่างเช่น 1 เป็นบวกและ -1 เป็นลบใน Luau หมายเลข -0 เท่ากับ 0
print(0 == -0) --> จริงprint(-0 > 1) --> ไม่ถูกprint(-0 < 1) --> จริงprint(-0 > -1) --> จริงprint(-0 < -1) --> false
การจัดหมวดหมายตามจำนวน
Luau ไม่แยกแยะระหว่างตัวเลขและตัวเลข แต่คู่มือ API บางครั้งแยกแยะระหว่างพวกเขาเพื่อให้เฉพาะเจาะจงเกี่ยวกับวิธีการใช้แต่ละ API
ลอย
ประเภทตัวเลข float หมายถึงตัวเลขจริงที่มีตำแหน่งทศนิยมในแง่ของวิทยาศาสตร์คอมพิวเตอร์พวกเขาเป็น จํานวนจุดทศนิยมเดียว (32 บิต) ลอยตัว ซึ่งไม่แม่นยําเท่ากับจํานวนจุดทศนิยมคู่ แต่มีความแม่นยําเพียงพอสําหรับกรณีการใช้งานส่วนใหญ่และต้องใช้หน่วยความจําและที่เก็บน้อยลง
int สร้างเมื่อวันที่: เมื่อวันที่สร้าง:
พิมพ์integer หรือ int หมายถึงจํานวน 32 บิตทั้งหมดซึ่งอยู่ระหว่าง -2 31 ถึง 2 31 -1คุณสมบัติและฟังก์ชันที่คาดว่าจะมีเลขจํานวนเต็มอาจรอบหรือเพิ่มข้อผิดพลาดโดยอัตโนมัติเมื่อคุณกําหนดหรือส่งเลขจํานวนที่ไม่ใช่เลขจํานวนให้กับพวกเขา
ตัวเลข 64 บิต
ประเภทตัวเลข int64 หมายถึงตัวเลข 64 บิตที่ลงนามซึ่งอยู่ในช่วงตั้งแต่ -2 63 ถึง 2 63 - 1ชนิดของตัวเลขนี้เป็นที่นิยมสำหรับวิธีการที่ใช้หมายเลขรหัสจากเว็บไซต์ Robloxตัวอย่างเช่น Player.UserId เป็น int64 และ MarketplaceService:PromptPurchase() และ TeleportService:Teleport() แต่ละคนคาดว่า int64 สำหรับอาร์กิวเมนต์ ID
สัญลักษณ์
ตัวเลขจะถูกบอกด้วยตัวเลขที่สำคัญที่สุดก่อน (big-endian) มีหลายวิธีในการบอกตัวอักษรตัวเลขใน Luau:
- เบี้ยว (ฐาน-10) — เขียนตัวเลขของหมายเลขโดยปกติโดยใช้ตัวเลข 0–9 ด้วยจุดทศนิยมเดียวเพียงหนึ่งจุดเช่น 7 หรือ 1.25 หรือ -22.5
- การบันทึกทางวิทยาศาสตร์ — เขียนตัวเลขทศนิยมตามด้วย e หรือ e+ จากนั้นตัวเลขอตันเพื่อเพิ่มตัวเลขทศนิยมเป็นอำนาจ อินสแตนซ์12e3 คือ 12 × 10^3 (12,000)
- หกเหลี่ยม (ฐาน-16) — เริ่มตัวเลขด้วย 0x ตามด้วยตัวเลข 0–9 หรือ A–F (การเขียนใหญ่ถูกเพิกเฉย)ตัวอย่างเช่น 0xF คือ 15 และ 0x3FC คือ 1020
การดำเนินการ
คุณสามารถใช้ตัวประกอบเชิงตรรกและเชิงเส้นต์ เพื่อควบคุมและเปรียบเทียบตัวเลขคุณยังสามารถใช้ฟังก์ชันทางคณิตศาสตร์เช่น math.sqrt() และ math.exp() ในห้องสมุด math และการดำเนินการแบบบิตในห้องสมุด bit32
ประเภทการตรวจสอบ
คุณสามารถกำหนดได้ว่าค่า x เป็นตัวเลขโดยใช้ type(x) หรือ typeof(x)ทั้งสองคืนสตริง number หาก x เป็นตัวเลข
local testInt = 5local testDecimal = 9.12761656local testString = "Hello"print(type(testInt)) --> จํานวนprint(type(testDecimal)) --> จํานวนprint(type(testString)) --> สตริงprint(typeof(testInt)) --> จํานวนprint(typeof(testDecimal)) --> จํานวนprint(typeof(testString)) --> string
ฟังก์ชันรอบ
คุณสามารถรอบตัวเลขโดยใช้ math.floor() , math.ceil() หรือ math.modf() ได้ฟังก์ชันเหล่านี้จะคืนผลลัพธ์เป็นจํานวนเต็มหาก Luau สามารถแทนที่ได้เป็นจํานวนเต็มหากตัวเลขมีขนาดใหญ่เกินไป Luau จะส่งคืนเป็นลอยตัว
- เพื่อกำหนดว่าหมายเลข x เป็นจํานวนเต็มหรือไม่ใช้ math.floor(x) == x
- เพื่อลดตัวเลขลงให้ใช้ math.floor()
- เพื่อรอบตัวเลขขึ้น, ใช้ math.ceil() .
- เพื่อทำให้ตัวเลขมุ่งสู่ศูนย์ ให้ใช้ math.modf() มันยังส่งคืนความแตกต่างทศนิยมของตัวเลขที่ถูกตัดส่วนเป็นผลลัพธ์ที่สอง
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