แชร์ผ่าน


สตริงรูปแบบตัวเลขแบบกําหนดเอง

คุณสามารถสร้างสตริงรูปแบบตัวเลขแบบกําหนดเองซึ่งประกอบด้วยตัวระบุตัวเลขแบบกําหนดเองอย่างน้อยหนึ่งตัวเพื่อกําหนดวิธีการจัดรูปแบบข้อมูลตัวเลข สตริงรูปแบบตัวเลขแบบกําหนดเองคือสตริงรูปแบบใดก็ตามที่ไม่ใช่ สตริงรูปแบบตัวเลขมาตรฐาน

ตารางต่อไปนี้อธิบายตัวระบุรูปแบบตัวเลขแบบกําหนดเองและแสดงผลลัพธ์ตัวอย่างที่ผลิตโดยตัวระบุรูปแบบแต่ละรูปแบบ ไปที่ ส่วนบันทึกย่อ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้สตริงรูปแบบตัวเลขแบบกําหนดเอง และ ส่วนตัวอย่าง สําหรับภาพประกอบแบบครอบคลุมของการใช้งาน

ตัวระบุรูปแบบ ชื่อ รายละเอียด ตัวอย่าง
"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

กลับไปที่ตาราง

สัญพจน์อักขระ

ตัวระบุรูปแบบที่ปรากฏในสตริงรูปแบบตัวเลขแบบกําหนดเองจะถูกแปลเป็นอักขระการจัดรูปแบบเสมอและไม่เคยเป็นอักขระสัญพจน์ ซึ่งรวมถึงอักขระต่อไปนี้:

  • 0
  • #
  • %
  • '
  • \
  • ""
  • .
  • ,
  • หรือ e ขึ้นอยู่กับตําแหน่งในสตริงรูปแบบ

อักขระอื่น ๆ ทั้งหมดจะถูกตีความว่าเป็นสัญพจน์ของอักขระเสมอ และในการดําเนินการจัดรูปแบบจะรวมอยู่ในสตริงผลลัพธ์ที่ไม่เปลี่ยนแปลง ในการดําเนินการแยกวิเคราะห์ การดําเนินการดังกล่าวจะต้องตรงกับอักขระในสตริงที่ป้อนเข้าอย่างถูกต้อง การเปรียบเทียบต้องตรงตามตัวพิมพ์ใหญ่-เล็ก

ตัวอย่างต่อไปนี้แสดงการใช้งานทั่วไปของหน่วยอักขระสัญพจน์ (ในกรณีนี้ เป็นหลักพัน):

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.TypeSingle.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

กลับไปที่ตาราง