แปลงระหว่างตัวเลข
การแปลงชนิดและเมธอด Convert
แปลงระหว่างตัวเลข เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิดข้อมูลตัวเลข
- เลขคณิตและลำดับความสำคัญ
- คลาส Math
- แปลงระหว่างตัวเลข