สตริงรูปแบบตัวเลขแบบกําหนดเอง
คุณสามารถสร้างสตริงรูปแบบตัวเลขแบบกําหนดเองซึ่งประกอบด้วยตัวระบุตัวเลขแบบกําหนดเองอย่างน้อยหนึ่งตัวเพื่อกําหนดวิธีการจัดรูปแบบข้อมูลตัวเลข สตริงรูปแบบตัวเลขแบบกําหนดเองคือสตริงรูปแบบใดก็ตามที่ไม่ใช่ สตริงรูปแบบตัวเลขมาตรฐาน
ตารางต่อไปนี้อธิบายตัวระบุรูปแบบตัวเลขแบบกําหนดเองและแสดงผลลัพธ์ตัวอย่างที่ผลิตโดยตัวระบุรูปแบบแต่ละรูปแบบ ไปที่ ส่วนบันทึกย่อ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้สตริงรูปแบบตัวเลขแบบกําหนดเอง และ ส่วนตัวอย่าง สําหรับภาพประกอบแบบครอบคลุมของการใช้งาน
ตัวระบุรูปแบบ | ชื่อ | รายละเอียด | ตัวอย่าง |
---|---|---|---|
"0" | ตัวแทนข้อความศูนย์ | แทนที่ศูนย์ด้วยตัวเลขที่สอดคล้องกันถ้ามีอยู่ มิฉะนั้น ศูนย์จะปรากฏในสตริงผลลัพธ์ ข้อมูลเพิ่มเติม: ตัวระบุแบบกําหนดเอง "0" |
1234.5678 ("00000") -> 01235 0.45678 ("0.00", en-US) -> 0.46 0.45678 ("0.00", fr-FR) -> 0,46 |
"#" | ตัวแทนตัวเลข | แทนที่สัญลักษณ์ "#" ด้วยตัวเลขที่สอดคล้องกันถ้ามีอยู่ มิฉะนั้น จะไม่มีตัวเลขปรากฏในสตริงผลลัพธ์ ไม่มีตัวเลขปรากฏในสตริงผลลัพธ์ ถ้าตัวเลขที่สอดคล้องกันในสตริงที่ป้อนเข้าเป็น 0 ที่ไม่สําคัญ ตัวอย่างเช่น 0003 ("####") -> 3 ข้อมูลเพิ่มเติม: ตัวระบุแบบกําหนดเอง "#" |
1234.5678 ("#####") -> 1235 0.45678 ("#.##", en-US) -> .46 0.45678 ("#.#", fr-FR) -> ,46 |
"." | จุดทศนิยม | กําหนดตําแหน่งที่ตั้งของตัวคั่นทศนิยมในสตริงผลลัพธ์ ข้อมูลเพิ่มเติม: "." ตัวระบุแบบกําหนดเอง |
0.45678 ("0.00", en-US) -> 0.46 0.45678 ("0.00", fr-FR) -> 0,46 |
"," | ตัวคั่นกลุ่มและการปรับมาตราส่วนตัวเลข | ทําหน้าที่เป็นทั้งตัวคั่นกลุ่มและตัวระบุมาตราส่วนตัวเลข เป็นตัวคั่นกลุ่ม ซึ่งจะแทรกอักขระตัวคั่นกลุ่มที่แปลเป็นภาษาท้องถิ่นระหว่างแต่ละกลุ่ม เป็นตัวระบุมาตราส่วนตัวเลข ซึ่งจะหารตัวเลขด้วย 1000 สําหรับแต่ละเครื่องหมายจุลภาคที่ระบุ ข้อมูลเพิ่มเติม: ตัวระบุแบบกําหนดเอง "," |
ตัวระบุตัวคั่นกลุ่ม: 2147483647 ("##,#", en-US) -> 2,147,483,647 2147483647 ("##,#", es-ES) -> 2.147.483.647 ตัวระบุการปรับมาตราส่วน: 2147483647 ("#,#,,", en-US) -> 2,147 2147483647 ("#,#,,", es-ES) -> 2.147 |
"%" | ตัวแทนเปอร์เซ็นต์ | คูณตัวเลขด้วย 100 และแทรกสัญลักษณ์เปอร์เซ็นต์ที่แปลเป็นภาษาท้องถิ่นในสตริงผลลัพธ์ ข้อมูลเพิ่มเติม: ตัวระบุแบบกําหนดเอง "%" |
0.3697 ("%#0.00", en-US) -> %36.97 0.3697 ("%#0.00", el-GR) -> %36,97 0.3697 ("##.0 %", en-US) -> 37.0 % 0.3697 ("##.0 %", el-GR) -> 37,0 % |
"‰" | ตัวแทนต่อมิลลิวินาที | คูณตัวเลขด้วย 1,000 และแทรกสัญลักษณ์ต่อมิลลิเมตรที่แปลเป็นภาษาท้องถิ่นในสตริงผลลัพธ์ ข้อมูลเพิ่มเติม: ตัวระบุแบบกําหนดเอง "‰" |
0.03697 ("#0.00‰", en-US) -> 36.97‰ 0.03697 ("#0.00‰", ru-RU) -> 36,97‰ |
"E0" "E+0" "E-0" "e0" "e+0" "e-0" |
สแทนกรณ์เอ็กซ์โพเนนเชียล | ถ้า ตามด้วยอย่างน้อยหนึ่ง 0 (ศูนย์) จัดรูปแบบผลลัพธ์โดยใช้สแทนเลขชี้กําลัง กรณีของ หรือ ระบุตัวพิมพ์ใหญ่-เล็กของสัญลักษณ์เลขชี้กําลังในสตริงผลลัพธ์ จํานวนศูนย์ที่ตามหลังอักขระ หรือ จะกําหนดจํานวนหลักต่ําสุดในเลขชี้กําลัง เครื่องหมายบวก (+) บ่งชี้ว่าอักขระเครื่องหมายอยู่ก่อนหน้าเลขชี้กําลังเสมอ เครื่องหมายลบ (-) ระบุว่าอักขระเครื่องหมายนําหน้าเลขชี้กําลังที่เป็นลบเท่านั้น ข้อมูลเพิ่มเติม: ตัวระบุแบบกําหนดเอง และ |
987654 ("#0.0e0") -> 98.8e4 1503.92311 ("0.0##e+00") -> 1.504e+03 1.8901385E-16 ("0.0e+00") -> 1.9e-16 |
"\", "''", """" | หลีกอักขระ | ทําให้อักขระถัดไปหรืออักขระถัดไปถูกตีความว่าเป็นสัญพจน์แทนที่จะเป็นตัวระบุรูปแบบที่กําหนดเอง ข้อมูลเพิ่มเติม:หลีกเลี่ยงอักขระ |
987654 ("\###00\#") -> #987654# 987654 ("'#'##00'#'") -> #987654# 987654 (""#""##00""#""") -> #987654# |
'string' "สตริง" |
ตัวคั่นสตริงสัญพจน์ | ระบุว่าควรคัดลอกอักขระที่อยู่ภายในไปยังสตริงผลลัพธ์โดยไม่เปลี่ยนแปลง ข้อมูลเพิ่มเติม :สัญพจน์อักขระ |
68 ("# 'องศา'") -> 68 องศา 68 ("#' องศา') -> 68 องศา |
; | ตัวคั่นส่วน | กําหนดส่วนด้วยสตริงรูปแบบที่แยกต่างหากสําหรับจํานวนบวก ค่าลบ และศูนย์ ข้อมูลเพิ่มเติม: ";" ตัวคั่นส่วน |
12.345 ("#0.0#;( #0.0#);-\0-") -> 12.35 0 ("#0.0#;( #0.0#);-\0-") -> -0- -12.345 ("#0.0#;( #0.0#);-\0-") -> (12.35) 12.345 ("#0.0#;( #0.0#)") -> 12.35 0 ("#0.0#;( #0.0#)") -> 0.0 -12.345 ("#0.0#;( #0.0#)") -> (12.35) |
อื่นๆ | อักขระอื่น ๆ ทั้งหมด | อักขระจะถูกคัดลอกไปยังสตริงผลลัพธ์ไม่เปลี่ยนแปลง ข้อมูลเพิ่มเติม :สัญพจน์อักขระ |
68 ("# °") -> 68 ° |
ส่วนต่อไปนี้แสดงข้อมูลโดยละเอียดเกี่ยวกับตัวระบุรูปแบบตัวเลขแบบกําหนดเองแต่ละตัว
ตัวระบุแบบกําหนดเอง "0"
ตัวระบุรูปแบบแบบกําหนดเอง "0" ทําหน้าที่เป็นสัญลักษณ์ตัวแทนศูนย์ ถ้าค่าที่จัดรูปแบบมีตัวเลขในตําแหน่งที่ศูนย์ปรากฏในสตริงรูปแบบ ตัวเลขนั้นจะถูกคัดลอกไปยังสตริงผลลัพธ์ มิฉะนั้น ศูนย์จะปรากฏในสตริงผลลัพธ์ ตําแหน่งของศูนย์ซ้ายสุดก่อนจุดทศนิยมและศูนย์ที่อยู่ขวาสุดหลังจากจุดทศนิยมจะกําหนดช่วงของตัวเลขที่มีอยู่ในสตริงผลลัพธ์เสมอ
ตัวระบุ "00" ทําให้ค่าถูกปัดเศษเป็นตัวเลขที่ใกล้เคียงที่สุดก่อนทศนิยม ซึ่งจะมีการปัดเศษออกจากศูนย์เสมอ ตัวอย่างเช่น การจัดรูปแบบ 34.5 ด้วย "00" จะส่งผลให้มีค่า 35
ตัวอย่างต่อไปนี้แสดงค่าหลายค่าที่ได้รับการจัดรูปแบบโดยใช้สตริงรูปแบบแบบกําหนดเองที่มีตัวแทนข้อความเป็นศูนย์
let
Source =
{
Number.ToText(123, "00000", ""),
// Displays 00123
Number.ToText(1.2, "0.00", ""),
// Displays 1.20
Number.ToText(1.2, "00.00", ""),
// Displays 01.20
Number.ToText(1.2, "00.00", "da-DK"),
// Displays 01,20
Number.ToText(.56, "0.0", ""),
// Displays 0.6
Number.ToText(1234567890, "0,0", ""),
// Displays 1,234,567,890
Number.ToText(1234567890, "0,0", "el-GR"),
// Displays 1.234.567.890
Number.ToText(1234567890.123456, "0,0.0", ""),
// Displays 1,234,567,890.1
Number.ToText(1234.567890, "0,0.00", "")
// Displays 1,234.57
}
in
Source
หมายเหตุ
ค่าข้อความที่ว่างเปล่า ("") ในพารามิเตอร์สุดท้ายของ Number.ToText ในตัวอย่างก่อนหน้าหมายถึงวัฒนธรรมที่ไม่แปรเปลี่ยน
ตัวระบุแบบกําหนดเอง "#"
ตัวระบุรูปแบบที่กําหนดเอง "#" ทําหน้าที่เป็นสัญลักษณ์ตัวแทนตัวเลข หากค่าที่จัดรูปแบบมีตัวเลขในตําแหน่งที่สัญลักษณ์ "#" ปรากฏในสตริงรูปแบบ ตัวเลขนั้นจะถูกคัดลอกไปยังสตริงผลลัพธ์ มิฉะนั้น ไม่มีสิ่งใดถูกเก็บไว้ในตําแหน่งนั้นในสตริงผลลัพธ์
โปรดทราบว่าตัวระบุนี้จะไม่แสดงเป็นศูนย์ที่ไม่มีตัวเลขที่สําคัญ แม้ว่าศูนย์จะเป็นตัวเลขเดียวในสตริงก็ตาม ซึ่งแสดงศูนย์ก็ต่อเมื่อเป็นตัวเลขที่สําคัญในตัวเลขที่แสดงอยู่
สตริงรูปแบบ "##" ทําให้ค่าถูกปัดเศษเป็นตัวเลขที่ใกล้เคียงที่สุดก่อนจุดทศนิยม ซึ่งจะมีการปัดเศษออกจากศูนย์เสมอ ตัวอย่างเช่น การจัดรูปแบบ 34.5 ด้วย "##" จะส่งผลให้มีค่า 35
ตัวอย่างต่อไปนี้แสดงค่าหลายค่าที่มีการจัดรูปแบบโดยใช้สตริงรูปแบบแบบกําหนดเองที่มีตัวแทนตัวเลข
let
Source =
{
Number.ToText(1.2, "#.##", ""),
// Displays 1.2
Number.ToText(123, "#####"),
// Displays 123
Number.ToText(123456, "[##-##-##]"),
// Displays [12-34-56]
Number.ToText(1234567890, "#"),
// Displays 1234567890
Number.ToText(1234567890, "(###) ###-####")
// Displays (123) 456-7890
}
in
Source
เมื่อต้องการแสดงสตริงผลลัพธ์ที่แทนที่ตัวเลขหรือเลขศูนย์นําหน้าด้วยช่องว่าง ให้ใช้ Text.PadStart และระบุความกว้างของเขตข้อมูล ตามตัวอย่างต่อไปนี้แสดง
let
Source = Text.Format("The value is: '#{0}'", {Text.PadStart(Number.ToText(.324, "#.###"), 5)})
in
Source
// The example displays the following output if the current culture
// is en-US:
// The value is: ' .324'
ตัวระบุแบบกําหนดเอง "."
ตัวระบุรูปแบบที่กําหนดเอง "." แทรกตัวคั่นทศนิยมที่แปลเป็นสตริงผลลัพธ์ จุดแรกในสตริงรูปแบบจะกําหนดตําแหน่งที่ตั้งของตัวคั่นทศนิยมในค่าที่จัดรูปแบบ รอบระยะเวลาเพิ่มเติมใดๆ จะถูกละเว้น ถ้าตัวระบุรูปแบบลงท้ายด้วย "." เฉพาะตัวเลขที่สําคัญถูกจัดรูปแบบเป็นสตริงผลลัพธ์
อักขระที่ใช้เป็นตัวคั่นทศนิยมในสตริงผลลัพธ์ไม่ใช่จุดเสมอไป ซึ่งถูกกําหนดโดยวัฒนธรรมที่ควบคุมการจัดรูปแบบ
ตัวอย่างต่อไปนี้ใช้ตัวระบุรูปแบบ "." เพื่อกําหนดตําแหน่งที่ตั้งของจุดทศนิยมในสตริงผลลัพธ์หลายสตริง
let
Source =
{
Number.ToText(1.2, "0.00", ""),
// Displays 1.20
Number.ToText(1.2, "00.00", ""),
// Displays 01.20
Number.ToText(1.2, "00.00", "da-DK"),
// Displays 01,20
Number.ToText(.086, "#0.##%", ""),
// Displays 8.6%
Number.ToText(Double.From(86000), "0.###E+0", "")
// Displays 8.6E+4
}
in
Source
ตัวระบุแบบกําหนดเอง ","
อักขระ "," ทําหน้าที่เป็นทั้งตัวคั่นกลุ่มและตัวระบุมาตราส่วนตัวเลข
ตัวคั่นกลุ่ม: ถ้ามีการระบุเครื่องหมายจุลภาคอย่างน้อยหนึ่งตัวระหว่างตัวแทนตัวเลขสองตัว (0 หรือ #) ที่จัดรูปแบบตัวเลขจํานวนเต็มของตัวเลข อักขระตัวคั่นกลุ่มจะถูกแทรกระหว่างกลุ่มตัวเลขแต่ละกลุ่มในส่วนสําคัญของผลลัพธ์
วัฒนธรรมจะกําหนดอักขระที่ใช้เป็นตัวคั่นกลุ่มตัวเลขและขนาดของแต่ละกลุ่มตัวเลข ตัวอย่างเช่น หากสตริง "#,#" และวัฒนธรรมที่ไม่แปรเปลี่ยนจะถูกใช้เพื่อจัดรูปแบบตัวเลข 1000 ผลลัพธ์คือ "1,000"
ตัวระบุมาตราส่วนตัวเลข: ถ้ามีการระบุเครื่องหมายจุลภาคอย่างน้อยหนึ่งตัวทางด้านซ้ายของจุดทศนิยมที่ชัดเจนหรือโดยนัย ตัวเลขที่จะจัดรูปแบบจะถูกหารด้วย 1,000 สําหรับแต่ละเครื่องหมายจุลภาค ตัวอย่างเช่น หากสตริง "0," ถูกใช้เพื่อจัดรูปแบบตัวเลข 100 ล้าน ผลลัพธ์คือ "100"
คุณสามารถใช้ตัวคั่นกลุ่มและตัวระบุมาตราส่วนตัวเลขในสตริงรูปแบบเดียวกัน ตัวอย่างเช่น หากสตริง "#,0," และวัฒนธรรมที่ไม่แปรเปลี่ยนจะถูกใช้เพื่อจัดรูปแบบตัวเลขหนึ่งพันล้าน ผลลัพธ์คือ "1,000"
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้เครื่องหมายจุลภาคเป็นตัวคั่นกลุ่ม
let
Source =
{
Number.ToText(1234567890, "#,#", ""),
// Displays 1,234,567,890
Number.ToText(1234567890, "#,##0,,", "")
// Displays, 1,235
}
in
Source
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้เครื่องหมายจุลภาคเป็นตัวระบุสําหรับการปรับมาตราส่วนตัวเลข
let
Source =
{
Number.ToText(1234567890, "#,,", ""),
// Displays 1235
Number.ToText(1234567890, "#,,,", ""),
// Displays 1
Number.ToText(1234567890, "#,##0,,", "")
// Displays 1,235
}
in
Source
ตัวระบุแบบกําหนดเอง "%"
เครื่องหมายเปอร์เซ็นต์ (%) ในสตริงรูปแบบทําให้ตัวเลขคูณด้วย 100 ก่อนที่จะมีการจัดรูปแบบ สัญลักษณ์เปอร์เซ็นต์ที่แปลเป็นภาษาท้องถิ่นถูกแทรกในตัวเลขที่ตําแหน่งที่ % ปรากฏในสตริงรูปแบบ อักขระเปอร์เซ็นต์ที่ใช้ถูกกําหนดโดยวัฒนธรรม
ตัวอย่างต่อไปนี้กําหนดสตริงรูปแบบแบบกําหนดเองที่มีตัวระบุแบบกําหนดเอง "%"
let
Source = Number.ToText(.086, "#0.##%", "")
// Displays 8.6%
in
Source
ตัวระบุแบบกําหนดเอง "‰"
อักขระต่อมิลลิวินาที (‰ หรือ \u2030) ในสตริงรูปแบบทําให้มีการคูณตัวเลขด้วย 1000 ก่อนที่จะมีการจัดรูปแบบ สัญลักษณ์ต่อมิลลิเมตรที่เหมาะสมจะถูกแทรกในสตริงที่ส่งกลับที่ตําแหน่งที่สัญลักษณ์ ‰ ปรากฏในสตริงรูปแบบ อักขระต่อมิลลิวินาทีที่ใช้ถูกกําหนดโดยวัฒนธรรม ซึ่งให้ข้อมูลการจัดรูปแบบเฉพาะวัฒนธรรม
ตัวอย่างต่อไปนี้กําหนดสตริงรูปแบบแบบกําหนดเองที่มีตัวระบุแบบกําหนดเอง "‰"
let
Source = Number.ToText(.00354, "#0.##" & Character.FromNumber(0x2030), "")
// Displays 3.54‰
in
Source
ตัวระบุแบบกําหนดเอง และ
หากสตริงใด ๆ, "E+",,, "e+" หรือ อยู่ในสตริงรูปแบบและตามด้วยอย่างน้อยหนึ่งศูนย์ ตัวเลขจะถูกจัดรูปแบบโดยใช้เครื่องหมายทางวิทยาศาสตร์ที่มี หรือ ที่แทรกระหว่างตัวเลขและเลขชี้กําลัง จํานวนศูนย์ตามตัวบ่งชี้สัญลักษณ์ทางวิทยาศาสตร์จะกําหนดจํานวนตัวเลขต่ําสุดที่จะแสดงผลสําหรับเลขชี้กําลัง รูปแบบ "E+" และ "e+" ระบุว่าเครื่องหมายบวกหรือเครื่องหมายลบควรอยู่ก่อนหน้าเลขชี้กําลังเสมอ รูปแบบ,, หรือ ระบุว่าอักขระเครื่องหมายควรนําหน้าเลขชี้กําลังที่เป็นลบเท่านั้น
ตัวอย่างต่อไปนี้จัดรูปแบบค่าตัวเลขหลายค่าโดยใช้ตัวระบุสําหรับเครื่องหมายทางวิทยาศาสตร์
let
Source =
{
Number.ToText(86000, "0.###E+0", ""),
// Displays 8.6E+4
Number.ToText(86000, "0.###E+000", ""),
// Displays 8.6E+004
Number.ToText(86000, "0.###E-000", "")
// Displays 8.6E004
}
in
Source
หลีกอักขระ
สัญลักษณ์ "#", "0", ".", ",", "%" และ "‰" ในสตริงรูปแบบจะถูกตีความว่าเป็นตัวระบุรูปแบบแทนที่จะเป็นอักขระสัญพจน์ ทั้งนี้ขึ้นอยู่กับตําแหน่งในสตริงรูปแบบแบบกําหนดเอง ตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก เช่นเดียวกับสัญลักษณ์ + และ - ยังสามารถตีความว่าเป็นตัวระบุรูปแบบได้
หากต้องการป้องกันไม่ให้มีการแปลอักขระเป็นตัวระบุรูปแบบ คุณสามารถ:
- นําหน้าด้วยเครื่องหมายทับขวา
- ล้อมรอบด้วยอัญประกาศเดี่ยว
- ล้อมรอบด้วยเครื่องหมายอัญประกาศสองอัน
อักขระเหล่านี้แต่ละตัวทําหน้าที่เป็นอักขระหลีก อักขระการหลีกบ่งบอกว่าอักขระต่อไปนี้เป็นสัญพจน์อักขระที่ควรรวมอยู่ในสตริงผลลัพธ์ที่ไม่เปลี่ยนแปลง
เมื่อต้องการรวมเครื่องหมายทับขวาในสตริงผลลัพธ์ คุณต้องหลีกเลี่ยงด้วยเครื่องหมายทับขวาอีกอัน (\\
)
เมื่อต้องการรวมเครื่องหมายอัญประกาศเดี่ยวในสตริงผลลัพธ์ คุณต้องหลีกเลี่ยงด้วยเครื่องหมายทับขวา (\'
) ถ้าเครื่องหมายอัญประกาศเดี่ยวอันอื่นที่ไม่หลีกนําหน้าเครื่องหมายอัญประกาศเดี่ยวที่หลีก ระบบจะแสดงเครื่องหมายทับขวาแทน ('\'
แสดง \
)
เมื่อต้องการรวมเครื่องหมายอัญประกาศคู่ในสตริงผลลัพธ์ คุณต้องหลีกเลี่ยงสองเครื่องหมายด้วยเครื่องหมายทับขวา (\""
)
ตัวอย่างต่อไปนี้ใช้อักขระ escape เพื่อป้องกันการดําเนินการจัดรูปแบบจากการแปลอักขระ "#", "0" และ "" เป็นตัวระบุอักขระหลีกหรือรูปแบบ
let
Source =
{
Number.ToText(123, "\#\#\# ##0 dollars and \0\0 cents \#\#\#"),
// Displays ### 123 dollars and 00 cents ###
Number.ToText(123, "'###' ##0 dollars and '00' cents '###'"),
// Displays ### 123 dollars and 00 cents ###
Number.ToText(123, """###"" ##0 dollars and ""00"" cents ""###"""),
// Displays ### 123 dollars and 00 cents ###
Number.ToText(123, "\\\\\\ ##0 dollars and \0\0 cents \\\\\\"),
// Displays \\\ 123 dollars and 00 cents \\\
Number.ToText(123, "'\\\' ##0 dollars and '00' cents '\\\'"),
// Displays \\\ 123 dollars and 00 cents \\\
Number.ToText(123, """\\\"" ##0 dollars and ""00"" cents ""\\\""")
// Displays \\\ 123 dollars and 00 cents \\\
}
in
Source
ตัวคั่นส่วน ";"
เครื่องหมายอัฒภาค (;) คือตัวระบุรูปแบบตามเงื่อนไขที่ใช้การจัดรูปแบบที่แตกต่างกันกับตัวเลข ทั้งนี้ขึ้นอยู่กับว่าค่าเป็นบวก ลบ หรือศูนย์ เมื่อต้องการสร้างลักษณะการทํางานนี้ สตริงรูปแบบแบบกําหนดเองสามารถประกอบด้วยได้ถึงสามส่วนที่คั่นด้วยเครื่องหมายอัฒภาค ส่วนเหล่านี้จะอธิบายไว้ในตารางต่อไปนี้
จํานวนของส่วน | รายละเอียด |
---|---|
หนึ่งส่วน | สตริงรูปแบบจะนําไปใช้กับค่าทั้งหมด |
สองส่วน | ส่วนแรกจะนําไปใช้กับค่าบวกและศูนย์ และส่วนที่สองจะนําไปใช้กับค่าลบ ถ้าตัวเลขที่จะจัดรูปแบบเป็นค่าลบ แต่จะกลายเป็นศูนย์หลังจากการปัดเศษตามรูปแบบในส่วนที่สอง จะมีการจัดรูปแบบศูนย์ผลลัพธ์ตามส่วนแรก |
สามส่วน | ส่วนแรกจะนําไปใช้กับค่าบวก ส่วนที่สองจะนําไปใช้กับค่าลบ และส่วนที่สามจะนําไปใช้กับศูนย์ ส่วนที่สองสามารถเว้นว่างไว้ได้ (โดยที่ไม่มีสิ่งใดระหว่างเครื่องหมายอัฒภาค) ซึ่งในกรณีนี้ส่วนแรกจะนําไปใช้กับค่าที่ไม่ใช่ศูนย์ทั้งหมด ถ้าตัวเลขที่จะจัดรูปแบบไม่ใช่ศูนย์ แต่กลายเป็นศูนย์หลังจากการปัดเศษตามรูปแบบในส่วนแรกหรือที่สอง ศูนย์ผลลัพธ์จะถูกจัดรูปแบบตามส่วนที่สาม |
ตัวคั่นส่วนละเว้นการจัดรูปแบบที่มีอยู่ก่อนหน้าใดก็ตามที่เชื่อมโยงกับตัวเลขเมื่อมีการจัดรูปแบบค่าสุดท้าย ตัวอย่างเช่น ค่าลบจะแสดงโดยไม่มีเครื่องหมายลบเมื่อใช้ตัวคั่นส่วน ถ้าคุณต้องการให้ค่าที่จัดรูปแบบสุดท้ายมีเครื่องหมายลบ คุณควรใส่เครื่องหมายลบไว้อย่างชัดเจนซึ่งเป็นส่วนหนึ่งของตัวระบุรูปแบบกําหนดเอง
ตัวอย่างต่อไปนี้ใช้ตัวระบุรูปแบบ ";" เพื่อจัดรูปแบบจํานวนบวก ค่าลบ และศูนย์แตกต่างกัน
let
Source =
{
Number.ToText(1234, "##;(##)"),
// Displays 1234
Number.ToText(-1234, "##;(##)"),
// Displays (1234)
Number.ToText(0, "##;(##);**Zero**")
// Displays **Zero**
}
in
Source
สัญพจน์อักขระ
ตัวระบุรูปแบบที่ปรากฏในสตริงรูปแบบตัวเลขแบบกําหนดเองจะถูกแปลเป็นอักขระการจัดรูปแบบเสมอและไม่เคยเป็นอักขระสัญพจน์ ซึ่งรวมถึงอักขระต่อไปนี้:
อักขระอื่น ๆ ทั้งหมดจะถูกตีความว่าเป็นสัญพจน์ของอักขระเสมอ และในการดําเนินการจัดรูปแบบจะรวมอยู่ในสตริงผลลัพธ์ที่ไม่เปลี่ยนแปลง ในการดําเนินการแยกวิเคราะห์ การดําเนินการดังกล่าวจะต้องตรงกับอักขระในสตริงที่ป้อนเข้าอย่างถูกต้อง การเปรียบเทียบต้องตรงตามตัวพิมพ์ใหญ่-เล็ก
ตัวอย่างต่อไปนี้แสดงการใช้งานทั่วไปของหน่วยอักขระสัญพจน์ (ในกรณีนี้ เป็นหลักพัน):
let
Source = Number.ToText(123.8, "#,##0.0K")
// Displays 123.8K
in
Source
มีสองวิธีในการระบุว่าอักขระจะถูกแปลเป็นอักขระสัญพจน์และไม่เป็นอักขระการจัดรูปแบบเพื่อให้สามารถรวมอยู่ในสตริงผลลัพธ์หรือแยกวิเคราะห์ในสตริงอินพุตได้สําเร็จ:
โดยการหลบหนีอักขระการจัดรูปแบบ สําหรับข้อมูลเพิ่มเติม ให้ไปที่ หลีกเลี่ยงอักขระ
ด้วยการใส่สตริงสัญพจน์ทั้งหมดในเครื่องหมายอัญประกาศ
ตัวอย่างต่อไปนี้ใช้ทั้งสองวิธีในการรวมอักขระที่สงวนไว้ในสตริงรูปแบบตัวเลขแบบกําหนดเอง
let
Source =
{
Number.ToText(9.3, "##.0\%"),
// Displays 9.3%
Number.ToText(9.3, "\'##\'"),
// Displays '9'
Number.ToText(9.3, "\\##\\"),
// Displays \9\
Number.ToText(9.3, "##.0'%'"),
// Displays 9.3%
Number.ToText(9.3, "'\'##'\'"),
// Displays \9\
Number.ToText(9.3, "##.0""%"""),
// Displays 9.3%
Number.ToText(9.3, "\""##\""")
// Displays "9"
}
in
Source
บันทึกย่อ
ค่าอินฟินิตี้จุดทศนิยมและ NaN
โดยไม่คํานึงถึงสตริงรูปแบบ ถ้าค่าของ Decimal.Type
Single.Type
หรือ Double.Type
ชนิดจุดทศนิยมทศนิยมเป็นค่าอินฟินิตี้ด้านบวก ค่าอินฟินิตี้ด้านลบ หรือไม่ใช่ตัวเลข (NaN) สตริงที่จัดรูปแบบคือค่าของค่าคงที่ Number.PositiveInfinityNumber.NegativeInfinityหรือ Number.NaN ค่าคงที่ที่ระบุโดยวัฒนธรรมที่ใช้ในปัจจุบัน
สตริงรูปแบบการปัดเศษและจุดทศนิยมตายตัว
สําหรับสตริงรูปแบบจุดทศนิยม (นั่นคือ สตริงรูปแบบที่ไม่มีอักขระรูปแบบสัญลักษณ์ทางวิทยาศาสตร์) ตัวเลขจะถูกปัดเศษเป็นตําแหน่งทศนิยมมากเท่าที่มีตัวแทนตัวเลขทางด้านขวาของจุดทศนิยม ถ้าสตริงรูปแบบไม่มีจุดทศนิยม ตัวเลขจะถูกปัดเศษเป็นจํานวนเต็มที่ใกล้ที่สุด ถ้าตัวเลขมีจํานวนหลักมากกว่าที่มีตัวแทนตัวเลขทางด้านซ้ายของจุดทศนิยม ตัวเลขเพิ่มเติมจะถูกคัดลอกไปยังสตริงผลลัพธ์ทันทีก่อนตัวแทนตัวเลขแรก
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสตริงรูปแบบตัวเลขแบบกําหนดเองสองรายการ ในทั้งสองกรณี ตัวแทนตัวเลข (#
) แสดงข้อมูลตัวเลข และอักขระอื่นๆ ทั้งหมดจะถูกคัดลอกไปยังสตริงผลลัพธ์
let
Source =
{
Number.ToText(1234567890, "(###) ###-####"),
// Displays (123) 456-7890
Number.ToText(42, "My Number = #")
// Displays My number = 42
}
in
Source