C# Academy · บทเรียน

แปลงระหว่างตัวเลข

การแปลงชนิดและเมธอด Convert

บทเรียน 4 จาก 413 ขั้นตอน

แปลงระหว่างตัวเลข เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องแปลงชนิด

ชนิดข้อมูลตัวเลขที่แตกต่างกันไม่สามารถใช้ร่วมกันได้อย่างอิสระเสมอไป บางครั้งคุณต้องแปลงค่าจากชนิดหนึ่งไปเป็นอีกชนิดหนึ่ง

C# มีการแปลงโดยนัย การแคสต์อย่างชัดเจน คลาสสำหรับแปลงชนิด และการแปลงข้อความเป็นข้อมูลชนิดต่าง ๆ บทเรียนนี้จะครอบคลุมแต่ละวิธี

การแปลงโดยนัย

เมื่อชนิดข้อมูลเป้าหมายรองรับค่าที่เป็นไปได้ทั้งหมดของชนิดข้อมูลต้นทาง C# จะแปลงให้โดยนัยโดยไม่ต้องใช้ไวยากรณ์เพิ่มเติม

int สามารถเก็บอยู่ใน double ได้ ดังนั้นการกำหนดค่านี้จึงเกิดขึ้นโดยอัตโนมัติและปลอดภัย

int whole = 7;
double real = whole;
Console.WriteLine(real);

การแคสต์อย่างชัดเจน

การแปลงย้อนกลับอาจทำให้ข้อมูลสูญหาย C# จึงกำหนดให้ต้องใช้การแคสต์อย่างชัดเจน โดยระบุชนิดเป้าหมายไว้ในวงเล็บ

การแคสต์จาก double เป็น int จะตัดส่วนเศษเข้าหาศูนย์

double price = 9.99;
int dollars = (int)price;
Console.WriteLine(dollars);

การแคสต์อาจทำให้เกิดค่าล้น

การแคสต์ค่าที่ไม่สามารถเก็บในชนิดข้อมูลเป้าหมายได้ อาจให้ผลลัพธ์ที่ไม่ถูกต้องเนื่องจากค่าล้น

การแคสต์ค่า long ขนาดใหญ่เป็น int จะทำให้ค่าหมุนวนกลับ ดังนั้นควรตรวจสอบเสมอว่าค่านั้นอยู่ในช่วงที่รองรับ

long big = 3000000000;
int small = (int)big;
Console.WriteLine(small);

คลาสสำหรับแปลงชนิด

คลาส System.Convert ใช้แปลงค่าระหว่างชนิดข้อมูลต่าง ๆ ด้วยเมธอด เช่น Convert.ToInt32 และ Convert.ToDouble

ต่างจากการแคสต์ตรงที่ Convert.ToInt32 จะปัดเศษค่า double เป็นจำนวนเต็มที่ใกล้ที่สุด แทนที่จะตัดส่วนเศษทิ้ง

double value = 9.99;
int rounded = Convert.ToInt32(value);
Console.WriteLine(rounded);

การแปลงตัวเลขจากข้อความ

ข้อมูลที่ผู้ใช้ป้อนและไฟล์ต่าง ๆ จะมาในรูปแบบ string ใช้ int.Parse หรือ double.Parse เพื่อเปลี่ยนข้อความให้เป็นตัวเลข

ข้อความต้องเป็นตัวเลขที่ถูกต้อง มิฉะนั้นการแปลงจะทำให้เกิดข้อยกเว้น

string text = "42";
int number = int.Parse(text);
Console.WriteLine(number + 8);

การแปลงอย่างปลอดภัยด้วย TryParse

int.TryParse จะพยายามแปลงค่าและคืนค่า true หรือ false แทนการโยนข้อยกเว้น ค่าที่แปลงแล้วจะถูกส่งกลับผ่านพารามิเตอร์ out

นี่เป็นวิธีที่ปลอดภัยในการจัดการข้อมูลนำเข้าที่ไม่น่าเชื่อถือ

bool ok = int.TryParse("abc", out int result);
Console.WriteLine(ok);
Console.WriteLine(result);

ตัวเลขเป็นสตริง

ชนิดข้อมูลตัวเลขทุกชนิดมีเมธอด ToString สำหรับสร้างข้อความ คุณสามารถส่งสตริงรูปแบบเพื่อควบคุมลักษณะที่แสดงได้

  • "C" สกุลเงิน
  • "F2" ทศนิยมคงที่ 2 ตำแหน่ง
  • "N0" จัดกลุ่มหลักพัน
double amount = 1234.5;
Console.WriteLine(amount.ToString("F2"));
Console.WriteLine(amount.ToString("N0"));

แปลงจำนวนเต็มเป็นเลขทศนิยมเพื่อการหาร

เหตุผลที่พบบ่อยในการแปลงชนิดคือเพื่อหลีกเลี่ยงการหารจำนวนเต็ม ให้แคสต์ตัวถูกดำเนินการหนึ่งตัวเป็น double ก่อนหาร เพื่อคงส่วนทศนิยมไว้

หากไม่แคสต์ คุณจะได้ผลลัพธ์เป็นจำนวนเต็มที่ถูกตัดส่วนเศษทิ้ง

int scored = 7, total = 10;
double percent = (double)scored / total * 100;
Console.WriteLine(percent);

การแคสต์เทียบกับการแปลงและ Parse

เลือกเครื่องมือให้เหมาะสม:

  • แคสต์ระหว่างชนิดข้อมูลตัวเลข (ตัดส่วนเศษทิ้ง)
  • แปลงระหว่างชนิดข้อมูลหลายชนิด (ปัดเศษและจัดการค่า null)
  • Parse / TryParseเปลี่ยนข้อความให้เป็นตัวเลข

ควรเลือกใช้ TryParse กับข้อมูลนำเข้าที่คุณไม่สามารถควบคุมได้

ตัวอย่างการแปลงชนิด

โปรแกรมฉบับสมบูรณ์นี้อ่านตัวเลขจากข้อความ แปลงชนิด นำไปคำนวณ และจัดรูปแบบผลลัพธ์เป็นสกุลเงิน

string input = "19.95";
if (decimal.TryParse(input, out decimal price))
{
    decimal withTax = price * 1.20m;
    Console.WriteLine(withTax.ToString("F2"));
}

ตรวจสอบความเข้าใจ

เลือกวิธีที่ปลอดภัยที่สุดในการแปลงข้อความที่ผู้ใช้พิมพ์ให้เป็นตัวเลข

ทบทวน

คุณได้เรียนรู้การแปลงตัวเลข ได้แก่ การแปลงโดยนัยเมื่อปลอดภัย การแคสต์อย่างชัดเจน (ซึ่งจะตัดส่วนเศษทิ้งและอาจทำให้เกิดค่าล้น) คลาส Convert (ซึ่งจะปัดเศษ) และการแปลงข้อความด้วย Parse รวมถึง TryParse ที่ปลอดภัยกว่า

คุณยังได้จัดรูปแบบตัวเลขกลับเป็นสตริงด้วยรหัสรูปแบบของ ToString แคสต์ตัวถูกดำเนินการหนึ่งตัวเป็น double เพื่อหลีกเลี่ยงการหารจำนวนเต็ม

เริ่มต้นได้ฟรี

เรียนรู้ C# ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
93
บทเรียน
346

คำถามที่พบบ่อย

บทเรียน “แปลงระหว่างตัวเลข” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “แปลงระหว่างตัวเลข” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “แปลงระหว่างตัวเลข”

การแปลงชนิดและเมธอด Convert คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “แปลงระหว่างตัวเลข” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

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