Skip to Content

การแปลงประเภทข้อมูลใน Java (Java Type Casting)

วันนี้เราจะมาเรียนรู้เกี่ยวกับการแปลงประเภทข้อมูล หรือ Type Casting ใน Java กัน

การแปลงประเภทข้อมูลคืออะไร?

การแปลงประเภทข้อมูล คือการเปลี่ยนค่าจากประเภทข้อมูลหนึ่งไปเป็นอีกประเภทหนึ่ง เช่น จากตัวเลขจำนวนเต็มเป็นทศนิยม หรือจากตัวเลขเป็นตัวอักษร

ใน Java มีการแปลงประเภทข้อมูล 2 แบบ:

  1. Widening Casting (การแปลงแบบขยาย): ทำโดยอัตโนมัติ
  2. Narrowing Casting (การแปลงแบบลด): ต้องทำด้วยตัวเอง

1. Widening Casting (การแปลงแบบขยาย)

เป็นการแปลงจากประเภทที่เล็กกว่าไปเป็นประเภทที่ใหญ่กว่า: byte → short → char → int → long → float → double

ตัวอย่าง:

int ตัวเลขเต็ม = 100; double ตัวเลขทศนิยม = ตัวเลขเต็ม; // การแปลงแบบขยายเกิดขึ้นโดยอัตโนมัติ System.out.println(ตัวเลขเต็ม); // แสดง: 100 System.out.println(ตัวเลขทศนิยม); // แสดง: 100.0

2. Narrowing Casting (การแปลงแบบลด)

เป็นการแปลงจากประเภทที่ใหญ่กว่าไปเป็นประเภทที่เล็กกว่า: double → float → long → int → char → short → byte

ต้องทำด้วยตัวเอง โดยใส่ประเภทข้อมูลที่ต้องการในวงเล็บหน้าค่า

ตัวอย่าง:

double ตัวเลขทศนิยม = 9.78; int ตัวเลขเต็ม = (int) ตัวเลขทศนิยม; // การแปลงแบบลด System.out.println(ตัวเลขทศนิยม); // แสดง: 9.78 System.out.println(ตัวเลขเต็ม); // แสดง: 9

ข้อควรระวังในการแปลงประเภทข้อมูล

  1. การสูญเสียข้อมูล: เมื่อแปลงจากประเภทใหญ่เป็นเล็ก อาจทำให้ข้อมูลบางส่วนหายไป
  2. Overflow: เมื่อแปลงค่าที่เกินขอบเขตของประเภทข้อมูลที่รับ

ตัวอย่าง Overflow:

int ตัวเลขใหญ่ = 130; byte ตัวเลขเล็ก = (byte) ตัวเลขใหญ่; System.out.println(ตัวเลขใหญ่); // แสดง: 130 System.out.println(ตัวเลขเล็ก); // แสดง: -126 (เกิด Overflow)

การแปลงประเภทข้อมูลกับ String

การแปลงระหว่าง String และประเภทข้อมูลอื่นๆ เป็นเรื่องที่พบบ่อยใน Java:

  1. จาก String เป็นตัวเลข:
String ข้อความตัวเลข = "123"; int ตัวเลข = Integer.parseInt(ข้อความตัวเลข); System.out.println(ตัวเลข); // แสดง: 123
  1. จากตัวเลขเป็น String:
int ตัวเลข = 123; String ข้อความตัวเลข = String.valueOf(ตัวเลข); System.out.println(ข้อความตัวเลข); // แสดง: "123"

ตัวอย่างการใช้งานจริง

ลองมาดูตัวอย่างโปรแกรมที่ใช้การแปลงประเภทข้อมูลกัน:

public class โปรแกรมคำนวณเกรด { public static void main(String[] args) { // สมมติว่าเรามีคะแนนเป็นทศนิยม double คะแนน = 85.5; // แปลงคะแนนเป็นจำนวนเต็มเพื่อคิดเกรด int คะแนนเต็ม = (int) คะแนน; char เกรด; if (คะแนนเต็ม >= 80) { เกรด = 'A'; } else if (คะแนนเต็ม >= 70) { เกรด = 'B'; } else if (คะแนนเต็ม >= 60) { เกรด = 'C'; } else if (คะแนนเต็ม >= 50) { เกรด = 'D'; } else { เกรด = 'F'; } System.out.println("คะแนน: " + คะแนน); System.out.println("คะแนนเต็ม: " + คะแนนเต็ม); System.out.println("เกรด: " + เกรด); // แปลงเกรด (char) เป็น String เพื่อแสดงผล String ข้อความเกรด = String.valueOf(เกรด); System.out.println("คุณได้เกรด " + ข้อความเกรด); } }

สรุป

การแปลงประเภทข้อมูลเป็นทักษะสำคัญในการเขียนโปรแกรม Java ช่วยให้เราสามารถทำงานกับข้อมูลต่างประเภทได้อย่างยืดหยุ่น แต่ต้องระวังเรื่องการสูญเสียข้อมูลและ Overflow

ปรับปรุงล่าสุด