8. ความรูเพิ่มเติม
สตริงกําหนดรูปแบบ (Formatting String)
การแสดงผลลัพธทางจอภาพดวยคําสั่ง Write หรือ WriteLine ที่มีพารามิเตอรมากกวา
หนึ่งตัวนั้นบางครั้งเราตองการแสดงผลลัพธของนิพจนพรอมกับการจัดรูปแบบการแสดงผล เชน การระบุ
ตําแหนงการแสดงผลนิพจนในขอความหรือการระบุความกวาง) จํานวนตัวอักษร (สําหรับการแสดงผลหรือ
การจัดรูปแบบชิดซายหรือการจัดชิดขวา ในภาษา C# เราสามารถทําสิ่งเหลานี้ไดโดยใชวิธีการกําหนด
รูปแบบ ซึ่งในภาษา C# จะมี สตริงกําหนดรูปแบบ (formatting string) เพื่อใชสําหรับแสดง
ผลลัพธของนิพจนตามที่เราตองการ โดยทั่วไปแลวสตริงกําหนดรูปแบบจะมีรูปแบบดังนี้
“{index [,alignment] [:formatSpecifier]}”
ถูกนําไปแสดงผล
จากนั้นตามดวยลําดับของอารกิวเมนต เชน
Console.WriteLine(" Two sample integers are {0} and {1}. ", 3, 9)
จะแสดงผลลัพธเปน “Two sample integers are 3 and 9”
โดยที่ index เปนจํานวนเต็มเริ่มตนที่ศูนยใชสําหรับระบุอารกิวเมนตที่ตองการจะจัดรูปแบบ
เชน ถา index มีคาเปน 0 จะหมายถึงคาของอารกิวเมนตตัวแรกจะถูกแสดงในตําแหนงที่ index
ปรากฏอยู และถา index มีคาเปน 1 จะหมายถึงคาของอารกิวเมนตตัวที่สองจะถูกแสดงในตําแหนงที่
index ปรากฏอยูเปนตน สวน alignment เปนจํานวนเต็มที่ใชสําหรับระบุความกวางหรือจํานวน
ตัวอักษรที่จะแสดงผลพรอมกับจัดการแสดงผลแบบชิดซายหรือชิดขวา ถา alignment มีคาเปนลบจะ
จัดชิดซายและถา alignment มีคาเปนบวกจะจัดชิดขวา และตัวสุดทาย formatSpecifier
คือตัวกําหนดรูปแบบ (format specifier) ใชสําหรับกําหนดรูปแบบการแสดงผลของนิพจน
เชนแสดงผลลัพธของนิพจนในรูปแบบทศนิยมเปนตน สวนเครื่องหมาย [ ] หมายถึงจะมีหรือไมมีสวน
นี้กได ตัวกําหนดรูปแบบพื้นฐานสําหรับตัวเลขที่สําคัญแสดงในตารางตอไปนี้
็
สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี 25
9. อักขระกําหนดรูปแบบ ความหมาย
(Format Character)
E หรือ e Exponential (แสดงผลในรูปแบบตัวเลขทางวิทยาศาสตร)
F หรือ f Fixed-point (แสดงผลในรูปแบบทศนิยม)
General (แสดงผลในรูปแบบทั่วไป เชนตัวเลขจะถูกแสดงผล
G หรือ g
ในรูปแบบสั้นที่สุด)
Number (แสดงผลในรูปแบบตัวเลขเหมือนกับ Fixed-
N หรือ n
point แตจะใสเครื่องหมาย comma คั่นทุก ๆ 3 หลัก)
Percentage (ตัวเลขจะถูกเปลี่ยนอยูในรูปแบบของ
P หรือ p
เปอรเซ็นต)
X หรือ x Hexadecimal (แสดงผลในรูปแบบของเลขฐานสิบหก)
ตัวอยาง การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบ
using System;
class MainClass
{
public static void Main(string[] args)
{
Console.WriteLine("x = {0} y = {1}",123,456);
Console.WriteLine("123456789");
Console.WriteLine("{0,9}", 123);
Console.WriteLine("123456789");
Console.WriteLine("{0,-9}", 123);
Console.WriteLine("123456789123456789");
Console.WriteLine("{0,-9}{0,9}", 123,456);
}
}
ผลลัพธจากการรันโปรแกรม
26 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
10. ตัวอยาง การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบพรอมกับ
ตัวกําหนดรูปแบบ
using System;
class MainClass
{
public static void Main(string[] args)
{
int n = 123456789;
Console.WriteLine("{0:E}", n);
Console.WriteLine("{0:F}", n);
Console.WriteLine("{0:G}", n);
Console.WriteLine("{0:N}", n);
Console.WriteLine("{0:P}", n);
Console.WriteLine("{0:X}", n);
}
}
ผลลัพธจากการรันโปรแกรม
ตัวอยาง การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบพรอมกับการ
กําหนดความกวาง และใชตัวกําหนดรูปแบบพรอมกัน
using System;
class MainClass
{
public static void Main(string[] args)
{
int n = 123456789;
Console.WriteLine("{0,20:E}", n);
Console.WriteLine("{0,20:F}", n);
Console.WriteLine("{0,20:G}", n);
Console.WriteLine("{0,20:N}", n);
Console.WriteLine("{0,20:P}", n);
Console.WriteLine("{0,20:X}", n);
}
}
สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี 27