เลขทศนิยม: f32 และ f64
ทำงานกับตัวเลขเศษส่วน
เลขทศนิยม: f32 และ f64 เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
ตัวเลขที่มีเศษส่วน
เมื่อต้องใช้เลขทศนิยม Zig มีชนิดข้อมูลแบบจุดลอยตัวให้เลือกใช้ ชนิดเหล่านี้เก็บค่าเศษส่วน เช่น 3.14 แทนการเก็บเฉพาะจำนวนเต็ม
f64 คือตัวเลือกทั่วไป
ชนิดข้อมูล f64 เก็บค่าจุดลอยตัวแบบความละเอียดสองเท่าโดยใช้ 64 บิต โดยทั่วไปจะเลือกใช้เมื่อคุณต้องการความแม่นยำและช่วงค่าที่กว้าง
const pi: f64 = 3.14159;f32 แลกความแม่นยำกับขนาด
f32 ใช้พื้นที่ 32 บิต จึงประหยัดหน่วยความจำและอาจทำงานได้เร็วกว่า แต่เก็บเลขนัยสำคัญได้น้อยกว่า f64
const ratio: f32 = 0.5;Zig มีขนาดค่าจุดลอยตัวมากกว่านี้
นอกจาก f32 และ f64 แล้ว Zig ยังรองรับ f16 และ f128 ด้วย คุณเลือกขนาดที่สมดุลระหว่างความแม่นยำ หน่วยความจำ และความเร็วได้
ค่าคงที่จุดลอยตัวต้องมีจุด
ค่าคงที่จุดลอยตัวต้องมีจุดทศนิยม เช่น 2.0 การเขียนเพียง 2 จะได้จำนวนเต็ม ซึ่งเป็นค่าคนละชนิดกัน
const half = 0.5;
const one = 1.0;ใช้สัญกรณ์วิทยาศาสตร์ได้เช่นกัน
คุณสามารถเขียนค่าจุดลอยตัวที่ใหญ่มากหรือเล็กมากด้วยเลขชี้กำลัง รูปแบบ 1.5e3 หมายถึง 1.5 คูณสิบยกกำลังสาม หรือเท่ากับ 1500
const big: f64 = 1.5e3;การคำนวณด้วยค่าจุดลอยตัว
ตัวดำเนินการทั่วไปใช้กับค่าจุดลอยตัวได้ การหารค่าจุดลอยตัวสองค่าจะยังคงเก็บส่วนเศษไว้แทนที่จะตัดทิ้ง
const result: f64 = 7.0 / 2.0; // 3.5ค่าจุดลอยตัวเป็นค่าโดยประมาณ
ค่าจุดลอยตัวไม่สามารถเก็บเลขทศนิยมทุกค่าได้อย่างแม่นยำ ความผิดพลาดจากการปัดเศษเพียงเล็กน้อยทำให้ 0.1 บวก 0.2 อาจไม่เท่ากับ 0.3 อย่างพอดี
เปรียบเทียบด้วยค่าความคลาดเคลื่อนที่ยอมรับได้
เนื่องจากการปัดเศษ ให้หลีกเลี่ยงการทดสอบค่าจุดลอยตัวด้วยความเท่ากันแบบตรงตัว แต่ให้ตรวจสอบว่าผลต่างมีค่าน้อยกว่าเกณฑ์ขนาดเล็กแทน
const close = @abs(a - b) < 0.0001;แปลงจำนวนเต็มเป็นค่าจุดลอยตัว
หากต้องการเปลี่ยนจำนวนเต็มเป็นค่าจุดลอยตัว คุณต้องระบุอย่างชัดเจนด้วย @floatFromInt Zig จะไม่ผสมจำนวนสองชนิดนี้ให้โดยอัตโนมัติ
const n: i32 = 10;
const f: f64 = @floatFromInt(n);ค่าจุดลอยตัวพิเศษ
ค่าจุดลอยตัวยังสามารถแทนค่าอนันต์และค่าไม่ใช่ตัวเลขได้ ค่าเหล่านี้อาจเกิดจากการดำเนินการ เช่น การหารด้วยศูนย์ และไลบรารีมาตรฐานก็มีชื่อเรียกให้
ตรวจสอบอย่างรวดเร็ว
คุณหารค่าจุดลอยตัวค่าหนึ่งด้วยอีกค่าหนึ่งและต้องการเก็บผลลัพธ์ที่มีเศษส่วนไว้ ข้อใดเป็นจริงเกี่ยวกับการคำนวณแบบจุดลอยตัวใน Zig
สรุป
ใช้ f64 สำหรับเลขทศนิยมทั่วไป และใช้ f32 เพื่อประหยัดพื้นที่ โปรดจำไว้ว่าค่าจุดลอยตัวเป็นค่าโดยประมาณ จึงควรเปรียบเทียบด้วยค่าความคลาดเคลื่อนที่ยอมรับได้และแคสต์อย่างตั้งใจ 🎯
คำถามที่พบบ่อย
บทเรียน “เลขทศนิยม: f32 และ f64” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เลขทศนิยม: f32 และ f64” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เลขทศนิยม: f32 และ f64”
ทำงานกับตัวเลขเศษส่วน คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “เลขทศนิยม: f32 และ f64” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม
ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- จำนวนเต็มกำหนดขนาด: i32, u8, usize
- เลขทศนิยม: f32 และ f64
- bool, void และชนิด comptime
- ค่าตัวเลขตามตัวอักษรและขีดล่าง