การแปลงชนิดข้อมูลของตัวแปร ง40208 การเขียนไดนามิกเว็บเพจ ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ทำไมต้องแปลงชนิดของข้อมูล เพราะข้อมูลที่รับจากผู้ใช้จะเป็นข้อมูล String สามารถนำไปใช้ในการประมวลผลข้อมูลได้
การแปลงเป็น String เป็นการแปลงข้อมูลชนิดอื่นๆให้เป็นข้อมูลแบบข้อความ (String) โดยใช้คำสั่ง method toString() โดยผลของการแปลงตัวแปรแบบ Boolean เป็น String จะได้ค่าเป็น “True” หรือ “False” แต่การแปลงตัวแปร Number เป็น String จะได้ค่าตัวเลขที่ไม่สามารถคำนวณได้
การใช้ method toString() มีรูปแบบการใช้ดังนี้ variable.toString( base ); โดยที่ variable คือ ชื่อของตัวแปร base คือ ฐานที่ต้องการเปลี่ยน ถ้าไม่ระบุฐานก็ไม่ต้องใส่
ตัวอย่างการใช้ toString() var start = true; var num = 25; document.write( start.toString() ); // ได้ผลลัพธ์เป็น “true” ซึ่งเป็น String document.write( num.toString() ); // ได้ผลลัพธ์เป็น “25” ซึ่งเป็น String
ตัวอย่างการใช้ toString() แปลงเป็นฐานอื่น var num = 12; // ตัวแปร num เป็นเลขฐาน 10 document.write ( toString(2) ); // แปลงเป็นเลขฐาน 2 ได้ค่าเป็น 1100 document.write ( toString(8) ); // แปลงเป็นเลขฐาน 8 ได้ค่าเป็น 14 document.write ( toString(12) ); // แปลงเป็นเลขฐาน 16 ได้ค่าเป็น c
ตัวอย่างการใช้ toString() แปลงเป็นฐานสิบ var hexNum = 0xAF; // ฐานสิบหกนำหน้าด้วย 0x var octNum = 0702; // ฐานแปดนำหน้าด้วย 0 document.write( hexNum.toString(10) ); // แปลงเป็นเลขฐาน 10 ได้ค่าเป็น 175 document.write( octNum.toString(10) ); // แปลงเป็นเลขฐาน 10 ได้ค่าเป็น 450
การแปลงเป็น Number method parseInt() ในกรณีที่ต้องการให้เป็นจำนวนเต็ม parseFloat() เมื่อต้องการให้เป็นตัวเลขทศนิยม ค่าของตัวแปรที่ต้องการนำมาแปลงจะต้องเป็นตัวแปรแบบ String ซึ่งอยู่ในเครื่องหมาย “…”
การแปลงข้อมูลโดยใช้ parseInt() จะได้ผลลัพธ์เป็นข้อมูลชนิด number แบบจำนวนเต็ม การทำงานของ parseInt() จะเริ่มตรวจสอบข้อมูลตั้งแต่ตัวแรกว่าเป็นตัวเลขหรือเปล่าถ้าไม่ใช่จะคืนค่าเป็น NaN (Not A Number) แต่ถ้าใช่จะตรวจสอบต่อไปเรื่อยๆจนกระทั่งมีค่าตัวแปรใดไม่ใช่ตัวเลขหรือหมดข้อมูล จากนั้นจะคืนค่าเฉพาะที่เป็นตัวเลขกลับมา
ตัวอย่างการใช้ parseInt() var num1 = parseInt(“108”); // ได้ผลลัพธ์เป็น 108 var num1 = parseInt(“108.99”); // ได้ผลลัพธ์เป็น 108 var num1 = parseInt(“108, 109”);// ได้ผลลัพธ์เป็น 108 var num1 = parseInt(“0xB”); // ได้ผลลัพธ์เป็น 11 var num1 = parseInt(“ok”);// ได้ผลลัพธ์เป็น NaN
การใช้ parseInt() แปลงเป็นฐานสิบ var num1 = parseInt(“111”,2); // ได้ผลลัพธ์เป็น 7 var num1 = parseInt(“111”,8); // ได้ผลลัพธ์เป็น 73 var num1 = parseInt(“111”,10); // ได้ผลลัพธ์เป็น 111 var num1 = parseInt(“AF”,16); // ได้ผลลัพธ์เป็น 175
การแปลงชนิดข้อมูลโดยใช้ parseFloat() จะได้ผลลัพธ์เป็นข้อมูลเป็นชนิด Number ที่มีข้อมูลเป็นเลขจำนวนจริง (Floating) โดยมีการทำงานเหมือนกับ parseInt() แต่จะคืนค่าเป็นทศนิยม
ตัวอย่างการใช้ parseFloat() var num1 = parseFloat(“010”); // ได้ผลลัพธ์เป็น 10 var num1 = parseFloat(“10.99”);// ได้ผลลัพธ์เป็น 10.99 var num1 = parseFloat(“10.9.5”);// ได้ผลลัพธ์เป็น 10.9 var num1 = parseFloat(“10AM”);// ได้ผลลัพธ์เป็น 10 var num1 = parseFloat(“0xB”); // ได้ผลลัพธ์เป็น NaN var num1 = parseFloat(“ok”); // ได้ผลลัพธ์เป็น NaN
การแปลงแบบ Casting เป็นการแปลงแบบบังคับ สามารถแปลงได้ 3 ชนิดคือ Boolean, String และ Number มีรูปแบบดังนี้ Type(value) โดย Type หมายถึง ชนิดของตัวแปรที่ต้องการ value หมายถึง ค่าที่ต้องการแปลง
ตัวอย่างการแปลงแบบ boolean var b1 = Boolean (“”); // ได้ผลลัพธ์เป็นค่า false เนื่องจาก String เป็นค่าว่าง var b1 = Boolean (“Hello”); // ได้ผลลัพธ์เป็นค่า true เนื่องจาก String เป็นค่าว่าง var b1 = Boolean (10); // ได้ผลลัพธ์เป็นค่า true เนื่องจาก Number ไม่เป็น 0 var b1 = Boolean (null); // ได้ผลลัพธ์เป็นค่า false เนื่องจาก null เป็นค่าว่าง var b1 = Boolean (0); // ได้ผลลัพธ์เป็นค่า false เนื่องจาก Number เป็น 0
ตัวอย่างการแปลงแบบ Number var N1 = Number(false); // ได้ผลลัพธ์เป็น 0 var N1 = Number(true); // ได้ผลลัพธ์เป็น 1 var N1 = Number(undefined); // ได้ผลลัพธ์เป็น NaN var N1 = Number(null); // ได้ผลลัพธ์เป็น 0 var N1 = Number(“1.2.3”); // ได้ผลลัพธ์เป็น NaN var N1 = Number(“1.2”); // ได้ผลลัพธ์เป็น 1.2 var N1 = Number(“13”); // ได้ผลลัพธ์เป็น 13
ตัวอย่างการเขียนโปรแกรมแปลงชนิดข้อมูล <html> <head><title>การแปลงชนิดข้อมูล</title>></head> <body> <script language=JavaScript> // รับข้อมูลากผู้ใช้ในรูปแบบของ String var string1 = prompt(“กรุณาป้อนตัวเลขตัวที่ 1”, “0”); var string2 = prompt(“กรุณาป้อนตัวเลขตัวที่ 2”, “0”); // แปลงตัวเลขจาก String เป็น Integer var num1 = parseInt( string1 ); var num2 = parseInt( string2 ); result = num1 * num2; document.write(num1 + “*” + num2 + “=” + result); </script> </body> </html>