0Pricing
C# Academy · บทเรียน

ชนิดข้อมูลตัวเลข

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ชนิดข้อมูลตัวเลข
  2. เลขคณิตและลำดับความสำคัญ
  3. คลาส Math
  4. แปลงระหว่างตัวเลข
← กลับไปที่ C# Academy