Nattawut Phetmak
Jack of all Trades
ก่อนจะใช้ตัวแปรใดๆ เราต้องประกาศชนิดของข้อมูลเสมอ เช่น
Dim n As Integer
Dim raw, out As String
Dim r As Decimal = 0.2325
ตัวแปรที่ไม่ถูกำหนดค่าตั้งแต่เริ่ม จะมีค่าเป็นค่าตั้งต้นของมัน เช่น n ในตัวอย่างนี้จะมีค่าเริ่มต้นเป็น 0
ตัวแปรแบบตัวเลข มี 2 แบบหลักๆ คือจำนวนเต็มกับทศนิยม สำหรับจำนวนเต็มมีค่าดังนี้
ค่าต่ำสุด | ชนิด | ค่าสูงสุด |
---|---|---|
0 | Byte | 255 |
-32,768 | Short | 32,767 |
-2,147,483,648 | Integer | 2,147,483,647 |
-9,223,372,036,854,775,808 | Long | 9,223,372,036,854,775,807 |
และสำหรับทศนิยม
ชนิด | ค่าเล็กสุด (ที่ไม่ใช่ 0) | ค่าใหญ่สุด |
---|---|---|
Single | +/-1.401298E-45 | +/-3.402823E+38 |
Double | +/-4.94065645841246544E-324 | +/-1.79769313486231E+308 |
Decimal | +/-0.0000000000000000000000000001 | +/-79,228,162,514,264,337,593,543,950,335 |
ทั้งนี้ สำหรับทศนิยม 2 แบบแรกนั้น มันเก็บความแม่นยำของค่าต่างๆ ในตำแหน่งทศนิยมได้ไม่ละเอียดนัก ในกรณีที่ต้องการทศนิยมความละเอียดมากๆ อาจพิจรณาใช้ตัวแปรแบบ Decimal (แบบสุดท้าย) แทน
และในการประกาศตัวแปรแบบตัวเลขนั้น เรามามารถเขียน E แทนการคูณด้วยสิบยกกำลังได้ด้วย
Dim planck As Double = 8.5E+184
ที่สำคัญคือ ต้องระวังเรื่องของ overflow ให้ดี เพราะอาจจะทำให้โปรแกรมหยุดชะงัก หรือทำให้ค่าตีกลับจากบวกเป็นลบ ค่าใหญ่กลายเป็นค่าเล็กได้
สำหรับการประกาศตัวแปรแบบค่าคงที่ เปลี่ยนจาก Dim
เป็น Const
Const max As Integer = 42
Const min As Integer = 24
ส่วนตัวแปรแบบข้อความ มี Char
(อักษรตัวเดียว) กับ String
(ข้อความอักษร)
Dim c As Char
Dim t As String
c = "C"
t = "Caesar"
การกำหนดค่าของ Char
ด้วยข้อความจะส่งผลลัพท์คืนกลับมาเป็นตัวอักษรตัวแรกของข้อความนั้น และเราไม่สามารถกำหนดค่าตัวเลขลงไปให้มันตรงๆ ได้ แต่ส่วนตัวแปรแบบ String
สามารถกำหนดค่าของตัวเลขลงไปได้ ซึ่งจะได้ผลลัพท์ออกมาเป็นตัวเลขนั้นๆ ไม่ใช่ตัวอักษรตามตำแหน่ง ASCII นะครับ
ทั้งนี้ ตัวแปรแบบ String
ไม่สามารถแทรก escape char อย่างเช่น \n ลงไปในข้อความระหว่าง " ... "
ได้ ส่วนการแทรกเครื่องหมาย “ (double quote) ให้ใส่ “” เข้าไปครับ
t = "I said ""Caesar""."
' output: I said "Caesar".