ชนิดข้อมูลตัวเลข
int, double, decimal และอื่น ๆ
ชนิดข้อมูลตัวเลข เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดชนิดตัวเลขจึงสำคัญ
ภาษาซีชาร์ปมีชนิดตัวเลขหลายชนิด แต่ละชนิดจัดเก็บช่วงค่าที่แตกต่างกันและใช้หน่วยความจำไม่เท่ากัน
การเลือกชนิดที่เหมาะสมช่วยให้โปรแกรมถูกต้องและมีประสิทธิภาพ จำนวนเต็ม เช่น จำนวนผู้ใช้ เหมาะกับ int ส่วนราคาต้องใช้ค่าทศนิยม
ในบทเรียนนี้ คุณจะได้รู้จักชนิดจำนวนเต็ม ชนิดจุดลอยตัว และชนิด decimal
ชนิดจำนวนเต็ม
จำนวนเต็มใช้จัดเก็บตัวเลขที่ไม่มีส่วนทศนิยม
int— 32 บิต เป็นค่าเริ่มต้นที่ใช้โดยทั่วไปlong— 64 บิต สำหรับจำนวนที่มีค่ามากมากshortและbyte— ช่วงค่าที่เล็กกว่า
ใช้ int เว้นแต่ว่าค่าอาจเกินประมาณสองพันล้าน
int age = 30;
long population = 8000000000;
Console.WriteLine(age);
Console.WriteLine(population);ช่วงค่าของจำนวนเต็ม
ชนิดจำนวนเต็มแต่ละชนิดมีค่าต่ำสุดและค่าสูงสุดที่กำหนดไว้ตายตัว คุณสามารถอ่านค่าเหล่านี้ได้ด้วย int.MaxValue และค่าคงที่ที่คล้ายกัน
การเกินค่าสูงสุดจะทำให้เกิดค่าล้น ซึ่งค่าจะวนกลับไปโดยไม่มีการแจ้งเตือน
Console.WriteLine(int.MinValue);
Console.WriteLine(int.MaxValue);
Console.WriteLine(long.MaxValue);จุดลอยตัว: ชนิดสองเท่า
double เป็นชนิดจุดลอยตัวขนาด 64 บิตสำหรับจำนวนจริงที่มีทศนิยม
ชนิดนี้เป็นค่าเริ่มต้นสำหรับค่าลิเทอรัลแบบเศษส่วน ดังนั้น 3.14 จึงเป็น double ชนิดนี้ทำงานรวดเร็วและเหมาะกับวิทยาศาสตร์และกราฟิก แต่จัดเก็บค่าได้เพียงโดยประมาณ
double pi = 3.14159;
double half = 1.0 / 2.0;
Console.WriteLine(pi);
Console.WriteLine(half);จุดลอยตัว: ชนิดความแม่นยำเดี่ยว
float เป็นชนิดจุดลอยตัวขนาด 32 บิต ใช้หน่วยความจำเพียงครึ่งหนึ่งของ double แต่เก็บตัวเลขได้น้อยหลักกว่า
ค่าลิเทอรัลชนิด float ต้องมีส่วนต่อท้ายเป็น f เช่น 2.5f มิฉะนั้นภาษาซีชาร์ปจะถือว่าตัวเลขนั้นเป็น double
float temperature = 21.5f;
float ratio = 0.1f;
Console.WriteLine(temperature);
Console.WriteLine(ratio);เงินที่เที่ยงตรง: decimal
decimal เป็นชนิดขนาด 128 บิตที่ออกแบบมาสำหรับเงินและค่าทศนิยมที่เที่ยงตรง ชนิดนี้หลีกเลี่ยงข้อผิดพลาดจากการปัดเศษเล็กน้อยของ double
ค่าลิเทอรัลชนิด decimal ใช้ส่วนต่อท้ายเป็น m เช่น 9.99m ใช้ชนิดนี้กับราคา การธนาคาร และการบัญชี
decimal price = 9.99m;
decimal tax = 0.08m;
Console.WriteLine(price + price * tax);ชนิดสองเท่าเทียบกับ decimal
สังเกตว่า double อาจให้ผลลัพธ์ที่น่าประหลาดใจ ในขณะที่ decimal ยังคงให้ค่าที่เที่ยงตรง
ด้วยเหตุนี้โค้ดด้านการเงินจึงนิยมใช้ decimal แม้ว่าจะทำงานช้ากว่า double ก็ตาม
double d = 0.1 + 0.2;
decimal m = 0.1m + 0.2m;
Console.WriteLine(d);
Console.WriteLine(m);การอนุมานชนิดด้วยวาร์
คีย์เวิร์ด var ช่วยให้คอมไพเลอร์อนุมานชนิดจากค่าทางด้านขวา
ตัวแปรยังคงมีชนิดที่ตายตัว — var count = 5; จะสร้างค่าเป็น int ส่วนต่อท้ายจะเป็นตัวกำหนดชนิดสำหรับค่าลิเทอรัลแบบเศษส่วน
var count = 5;
var pi = 3.14;
var price = 9.99m;
Console.WriteLine(count.GetType());
Console.WriteLine(price.GetType());ตัวคั่นหลักตัวเลข
เพื่อให้อ่านง่าย คุณสามารถใส่เครื่องหมายขีดล่างคั่นระหว่างหลักในค่าลิเทอรัลตัวเลขใด ๆ ได้ คอมไพเลอร์จะไม่สนใจเครื่องหมายขีดล่างเหล่านี้
วิธีนี้ทำให้มองอ่านตัวเลขขนาดใหญ่ได้ง่ายขึ้นมาก
int million = 1_000_000;
long distance = 9_460_730_472_580_800;
Console.WriteLine(million);
Console.WriteLine(distance);ค่าพิเศษของชนิดสองเท่า
double สามารถแทนค่าพิเศษได้ ได้แก่อนันต์บวกและลบ รวมถึง NaN (ไม่ใช่ตัวเลข)
การหารด้วยศูนย์ด้วยชนิดจุดลอยตัวจะได้ค่าอนันต์แทนข้อผิดพลาด ขณะที่การหารจำนวนเต็มด้วยศูนย์จะทำให้เกิดข้อยกเว้น
double inf = 1.0 / 0.0;
double nan = 0.0 / 0.0;
Console.WriteLine(inf);
Console.WriteLine(nan);การเลือกชนิดที่เหมาะสม
แนวทางอย่างรวดเร็ว:
- จำนวนเต็ม →
int(หรือlongหากมีค่ามากมาก) - ค่าทศนิยมทางวิทยาศาสตร์หรือค่าทั่วไป →
double - เงินและค่าที่ต้องการความเที่ยงตรง →
decimal
การเลือกอย่างเหมาะสมช่วยป้องกันข้อบกพร่องจากค่าล้นและข้อผิดพลาดจากการปัดเศษ
ตรวจสอบอย่างรวดเร็ว
ทดสอบความเข้าใจเกี่ยวกับชนิดตัวเลขของคุณ
สรุป
คุณได้เรียนรู้ชนิดตัวเลขหลักของภาษาซีชาร์ป ได้แก่ int และ long สำหรับจำนวนเต็ม double และ float สำหรับค่าจุดลอยตัว และ decimal สำหรับค่าเงินที่เที่ยงตรง
อย่าลืมส่วนต่อท้ายของค่าลิเทอรัล ได้แก่ f สำหรับ float, m สำหรับ decimal และเครื่องหมายขีดล่างเพื่อให้อ่านง่าย เลือกชนิดให้สมดุลระหว่างช่วงค่า ความเที่ยงตรง และหน่วยความจำ
คำถามที่พบบ่อย
บทเรียน “ชนิดข้อมูลตัวเลข” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ชนิดข้อมูลตัวเลข” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ชนิดข้อมูลตัวเลข”
int, double, decimal และอื่น ๆ คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “ชนิดข้อมูลตัวเลข” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม
ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิดข้อมูลตัวเลข
- เลขคณิตและลำดับความสำคัญ
- คลาส Math
- แปลงระหว่างตัวเลข