Megosztás a következőn keresztül:


Egyéni numerikus formázási sztringek

Létrehozhat egy egyéni numerikus formázási sztringet, amely egy vagy több egyéni számkijelölőből áll, hogy meghatározza a numerikus adatok formázásának módját. Az egyéni numerikus formázási sztringek olyan formátumsztringek, amelyek nem szabványos numerikus formázási sztringek.

Az alábbi táblázat az egyéni numerikus formátumkijelölőket ismerteti, és megjeleníti az egyes formátumkijelölők által előállított mintakimenetet. Az egyéni numerikus formátumú sztringek használatával kapcsolatos további információkért lépjen a Jegyzetek szakaszra, a Példa szakasz pedig a használatuk átfogó szemléltetéséhez.

Formátumkijelölő Név Leírás Példák
"0" Nulla helyőrző A nullát lecseréli a megfelelő számjegyre, ha van ilyen; ellenkező esetben a nulla jelenik meg az eredménysztringben.

További információ: A "0" egyéni kijelölő.
1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0,46

0,45678 ("0,00", fr-FR) -> 0,46
"#" Számjegy helyőrzője A "#" szimbólumot lecseréli a megfelelő számjegyre, ha van ilyen; ellenkező esetben az eredménysztringben nem jelenik meg számjegy.

Az eredménysztringben nem jelenik meg számjegy, ha a bemeneti sztring megfelelő számjegye nem jelentéktelen 0. Például: 0003 ("####") –> 3.

További információ: A "#" egyéni kijelölő.
1234.5678 ("#####") -> 1235

0,45678 ("#.##", en-US) –> .46

0,45678 ("#.#", fr-FR) –> 46
"." Tizedesvessző Meghatározza a tizedesjel helyét az eredménysztringben.

További információ: A "." Egyéni kijelölő.
0.45678 ("0.00", en-US) -> 0,46

0,45678 ("0,00", fr-FR) -> 0,46
"," Csoportelválasztó és számskálázás Csoportelválasztóként és számskálázási meghatározóként is szolgál. Csoportelválasztóként egy honosított csoportelválasztó karaktert szúr be az egyes csoportok közé. Számskálázási azonosítóként egy számot 1000-rel oszt el minden megadott vesszőhöz.

További információ: A "," Egyéni meghatározó.
Csoportelválasztó:

2147483647 ("##,#", en-US) -> 2 147 483 647

2147483647 ("##,#", es-ES) -> 2.147.483.647

Skálázási beállítás:

2147483647 ("#,#,,", en-US) -> 2147

2147483647 ("#,#,,", es-ES) -> 2,147
"%" Százalékos helyőrző Megszoroz egy számot 100-tal, és beszúr egy honosított százalékszimbólumot az eredménysztringbe.

További információ: A(z) "%" egyéni azonosító.
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 %
"‰" Mille helyőrzőnként Megszoroz egy számot 1000-rel, és beszúr egy honosított per mille szimbólumot az eredménysztringbe.

További információ: A "‰" egyéni kijelölő.
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"
Exponenciális jelölés Ha utána legalább egy 0 (nulla) van, az eredményt exponenciális jelöléssel formázhatja. Az "E" vagy az "e" eset a kitevő szimbólum esetét jelzi az eredménysztringben. Az "E" vagy "e" karaktert követő nullák száma határozza meg a kitevőben lévő számjegyek minimális számát. A pluszjel (+) azt jelzi, hogy egy jel karakter mindig megelőzi a kitevőt. A mínuszjel (-) azt jelzi, hogy egy jel karakter csak negatív kitevőket előz meg.

További információ: Az "E" és az "e" egyéni meghatározók.
987654 ("#0.0e0") –> 98,8e4

1503.92311 ("0.0##e+00") -> 1,504e+03

1.8901385E-16 ("0.0e+00") -> 1,9e-16
"\", "''", """" Escape-karakterek A következő karaktert vagy karaktereket nem egyéni formátumjelölőként, hanem literálként értelmezi.

További információ: Escape karakterek.
987654 ("\###00\#") –> #987654#

987654 ("'#'##00'#'") -> #987654#

987654 ("""#""##00""#""") -> #987654#
"sztring"

"sztring"
Literális sztringelválasztó Azt jelzi, hogy a zárt karaktereket változatlanul kell másolni az eredménysztringbe.

További információ: Karakterkonstansok.
68 ("# 'fok'") -> 68 fok

68 ("#" fok") -> 68 fok
; Szakaszelválasztó A pozitív, negatív és nulla számokhoz külön formátumsztringeket tartalmazó szakaszokat definiál.

További információ: A ";" Szakaszelválasztó.
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)
Egyéb Minden más karakter A program változatlanul másolja a karaktert az eredménysztringbe.

További információ: Karakterkonstansok.
68 ("# °") -> 68 °

Az alábbi szakaszok részletes információkat nyújtanak az egyéni numerikus formátumok definiálóiról.

A "0" egyéni kijelölő

A "0" egyéni formátumjelölő nulla helyőrző szimbólumként szolgál. Ha a formázott értéknek van egy számjegye abban a pozícióban, ahol a nulla megjelenik a formázási sztringben, akkor a program az eredménysztringbe másolja a számjegyet; ellenkező esetben egy nulla jelenik meg az eredménysztringben. A bal szélső nulla pozíciója a tizedespont előtt, a jobb szélső nulla pedig a tizedesvessző után határozza meg az eredménysztringben mindig jelen lévő számjegyek tartományát.

A "00" azonosító miatt az érték a tizedesvesszőt megelőző legközelebbi számjegyre lesz kerekítve, ahol mindig a nullától való lekerekítést használja a rendszer. A 34,5-ös formázás például a "00" értéket eredményezné.

Az alábbi példa több olyan értéket jelenít meg, amelyek a nulla helyőrzőket tartalmazó egyéni formázási sztringek használatával vannak formázva.

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

Feljegyzés

Az előző mintában szereplő Number.ToText utolsó paraméterében szereplő üres szöveges érték ("") az invariáns kultúrára hivatkozik.

Vissza a táblához

A "#" egyéni kijelölő

A "#" egyéni formátumjelölő számjegy-helyőrző szimbólumként szolgál. Ha a formázott értékben egy számjegy található abban a pozícióban, ahol a "#" szimbólum megjelenik a formázási sztringben, a program ezt a számjegyet az eredménysztringbe másolja. Ellenkező esetben a rendszer semmit sem tárol ebben a pozícióban az eredménysztringben.

Vegye figyelembe, hogy ez a kijelölő soha nem jelenít meg olyan nullát, amely nem jelentős számjegy, még akkor sem, ha a sztringben a nulla az egyetlen számjegy. Csak akkor jelenít meg nullát, ha a megjelenített szám jelentős számjegye.

A "##" formátumsztring miatt az érték a tizedesvesszőt megelőző legközelebbi számjegyre lesz kerekítve, ahol a függvény mindig nullától távol kerekítést használ. A 34.5-ös formázás például a "##" karakterrel a 35-ös értéket eredményezné.

Az alábbi példa több olyan értéket jelenít meg, amelyek számjegyhelyőrzőket tartalmazó egyéni formázási sztringek használatával vannak formázva.

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

Ha olyan eredménysztringet szeretne visszaadni, amelyben a hiányzó számjegyek vagy kezdő nullák szóközökre cserélődnek, használja a Text.PadStart, és adjon meg egy mezőszélességű mezőt, ahogyan az alábbi példa is szemlélteti.

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'

Vissza a táblához

A "." egyéni kijelölő

A "." egyéni formátumkijelölő egy honosított tizedeselválasztót szúr be az eredménysztringbe. A formátumsztring első időszaka határozza meg a tizedesjel helyét a formázott értékben; a rendszer figyelmen kívül hagyja a további időszakokat. Ha a formátumjelölő ""-val végződik, csak a jelentős számjegyek lesznek formázva az eredménysztringbe.

Az eredménysztringben tizedesjelként használt karakter nem mindig pont; a formázást vezérlő kultúra határozza meg.

Az alábbi példa a "." formátumjelölőt használja a tizedesvessző helyének meghatározásához több eredménysztringben.

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

Vissza a táblához

A "," egyéni kijelölő

A "," karakter csoportelválasztóként és számskálázási azonosítóként is szolgál.

  • Csoportelválasztó: Ha egy szám szerves számjegyeit formázó két számjegyhelyőrző (0 vagy #) között egy vagy több vessző van megadva, a kimenet szerves részének minden egyes számcsoportja között beszúr egy csoportelválasztó karaktert.

    A kultúra határozza meg a számcsoportelválasztóként használt karaktert és az egyes számcsoportok méretét. Ha például a "#,#" sztringet és az invariáns kultúrát használja az 1000-es szám formázására, akkor a kimenet "1000".

  • Számskálázási azonosító: Ha egy vagy több vessző közvetlenül az explicit vagy implicit tizedesvessző bal oldalán van megadva, a formázandó szám 1000-rel van osztva minden egyes vesszőhöz. Ha például a "0" sztring a 100 milliós szám formázására szolgál, akkor a kimenet "100".

A csoportelválasztót és a számskálázási azonosítót ugyanabban a formátumsztringben használhatja. Ha például a "#,0" sztring és az invariáns kultúra az egymilliárdos szám formázására szolgál, akkor a kimenet "1000".

Az alábbi példa a vessző csoportelválasztóként való használatát mutatja be.

let
    Source =
    {
        Number.ToText(1234567890, "#,#", ""),
        // Displays 1,234,567,890

        Number.ToText(1234567890, "#,##0,,", "")
        // Displays, 1,235
    }
in
    Source

Az alábbi példa a vessző számskálázási beállításként való használatát szemlélteti.

let
    Source =
    {
        Number.ToText(1234567890, "#,,", ""),
        // Displays 1235

        Number.ToText(1234567890, "#,,,", ""),
        // Displays 1

        Number.ToText(1234567890, "#,##0,,", "")
        // Displays 1,235
    }
in
    Source

Vissza a táblához

A(z) "%" egyéni azonosító

Egy formázási sztring százalékos előjele (%) miatt a szám megszorozva lesz 100-mal a formázás előtt. A honosított százalékos szimbólum be lesz szúrva a számba azon a helyen, ahol a %megjelenik a formátumsztringben. A használt százalék karaktert a kultúra határozza meg.

Az alábbi példa egy egyéni formázási sztringet határoz meg, amely tartalmazza a "%" egyéni azonosítót.

let
    Source = Number.ToText(.086, "#0.##%", "")
    // Displays 8.6%
in
    Source

Vissza a táblához

A "‰" egyéni kijelölő

A formázási sztringben a mille karakterenként (‰ vagy \u2030) a szám megszorozva lesz 1000-rel a formázás előtt. A függvény a visszaadott sztringbe beszúrja a megfelelő ezredmásodpercet azon a helyen, ahol a ‰ szimbólum megjelenik a formátumsztringben. A használt mille karaktert a kultúra határozza meg, amely kultúraspecifikus formázási információkat biztosít.

Az alábbi példa egy egyéni formátumsztringet határoz meg, amely tartalmazza a "‰" egyéni kijelölőt.

let
    Source = Number.ToText(.00354, "#0.##" & Character.FromNumber(0x2030), "")
    // Displays 3.54‰
in
    Source

Vissza a táblához

Az "E" és az "e" egyéni meghatározók

Ha az "E", "E+", "E-", "e", "e+" vagy "e-" sztringek bármelyike szerepel a formátumsztringben, és azokat azonnal legalább egy nulla követi, a számot tudományos jelöléssel formázza a szám és a kitevő közé beszúrt "E" vagy "e" karakterrel. A tudományos jelölési mutatót követő nullák száma határozza meg a kitevő számára kiírandó számjegyek minimális számát. Az "E+" és az "e+" formátum azt jelzi, hogy a pluszjelnek vagy a mínuszjelnek mindig meg kell előznie a kitevőt. Az "E", "E-", "e" vagy "e-" formátum azt jelzi, hogy egy jel karakternek csak negatív kitevőket kell megelőznie.

Az alábbi példa számos numerikus értéket formáz a tudományos jelölést meghatározók használatával.

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

Vissza a táblához

Escape-karakterek

A formátumsztring "#", "0", ".", "","","%" és "‰" szimbólumait a rendszer nem literális karakterként, hanem formátumjelölőként értelmezi. Az egyéni formázási sztringben elfoglalt helyüktől függően a kis- és nagybetűs "E", valamint a + és - szimbólumok formátumjelölőként is értelmezhetők.

Ha meg szeretné akadályozni, hogy egy karakter formátumjelölőként legyen értelmezve, a következőkre van lehetőség:

  • Megelőzi egy fordított perjellel.
  • Vegye körül egyetlen idézettel.
  • Vegye körül két dupla idézőjellel.

Ezek a karakterek mindegyike menekülési karakterként működik. A feloldó karakter azt jelzi, hogy a következő karakter egy karakterkonstans, amelyet változatlanul kell szerepeltetni az eredménysztringben.

Ha egy fordított perjelet szeretne belefoglalni egy eredménysztringbe, meg kell szabadulnia egy másik fordított perjellel (\\).

Ha egyetlen idézőjelet szeretne belefoglalni egy eredménysztringbe, el kell menekülnie egy fordított perjellel (\'). Ha egy másik, nem szökött idézőjel előzi meg a szökött egyetlen idézőjelet, akkor a fordított perjel jelenik meg ('\' megjeleníti \).

Ha egy eredménysztringben dupla idézőjelet szeretne szerepeltetni, két idézőjelet (fordított perjelet)\"" kell feloldania.

Az alábbi példa escape karaktereket használ annak megakadályozására, hogy a formázási művelet a "#", a "0" és a "" karaktereket feloldó karakterként vagy formátumjelölőként értelmezze.

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

Vissza a táblához

A ";" szakaszelválasztó

A pontosvessző (;) egy feltételes formátumkijelölő, amely eltérő formázást alkalmaz egy számra attól függően, hogy értéke pozitív, negatív vagy nulla. Ennek a viselkedésnek a létrehozásához egy egyéni formátumsztring legfeljebb három pontosvesszővel elválasztott szakaszt tartalmazhat. Ezeket a szakaszokat az alábbi táblázat ismerteti.

Szakaszok száma Leírás
Egy szakasz A formátumsztring minden értékre érvényes.
Két szakasz Az első szakasz a pozitív értékekre és nullákra, a második pedig a negatív értékekre vonatkozik.

Ha a formázandó szám negatív, de a második szakasz formátuma szerinti kerekítés után nullává válik, az eredményül kapott nulla az első szakasz szerint lesz formázva.
Három szakasz Az első szakasz a pozitív értékekre, a második szakasz a negatív értékekre, a harmadik pedig a nullákra vonatkozik.

A második szakasz üresen hagyható (mivel nincs semmi a pontosvesszők között), ebben az esetben az első szakasz az összes nemzero értékre vonatkozik.

Ha a formázandó szám nem nulla, de az első vagy a második szakasz formátuma szerinti kerekítés után nullává válik, az eredményül kapott nullát a harmadik szakasz szerint formázza a rendszer.

A szakaszelválasztók figyelmen kívül hagyják a számhoz tartozó, a végleges érték formázásakor már nem használt formázást. A negatív értékek például mindig mínuszjel nélkül jelennek meg a szakaszelválasztók használatakor. Ha azt szeretné, hogy a végső formázott érték mínuszjelet tartalmazzon, a mínuszjelet kifejezetten az egyéni formátumjelölő részeként kell megadnia.

Az alábbi példa a ";" formátumkijelölőt használja a pozitív, negatív és nulla számok eltérő formázására.

let
    Source =
    {
        Number.ToText(1234, "##;(##)"),
        // Displays 1234

        Number.ToText(-1234, "##;(##)"),
        // Displays (1234)

        Number.ToText(0, "##;(##);**Zero**")
        // Displays **Zero**
    }
in
    Source

Vissza a táblához

Karakterkonstansok

Az egyéni numerikus formátumú sztringben megjelenő formázási azonosítók mindig formázási karakterekként és soha nem konstans karakterekként vannak értelmezve. Ez a következő karaktereket tartalmazza:

A többi karakter mindig karakterkonstansként van értelmezve, és egy formázási műveletben változatlanul szerepel az eredménysztringben. Elemzési művelet esetén pontosan meg kell egyezniük a bemeneti sztringben szereplő karakterekkel; az összehasonlítás megkülönbözteti a kis- és nagybetűkét.

Az alábbi példa a literális karakteregységek (ebben az esetben ezrek) gyakori használatát szemlélteti:

let
    Source = Number.ToText(123.8, "#,##0.0K")
    // Displays 123.8K
in
    Source

Kétféleképpen jelezhető, hogy a karaktereket nem formázási karakterekként, hanem literális karakterekként kell értelmezni, hogy belefoglalhatók legyenek egy eredménysztringbe, vagy sikeresen elemezhetők legyenek egy bemeneti sztringben:

  • Egy formázási karakter elszabadításával. További információ: Escape karakterek.

  • Ha a teljes literális sztringet idéző aposztrófok közé ágyazza.

Az alábbi példa mindkét módszert használja a fenntartott karakterek egyéni numerikus formátumú sztringbe való belefoglalására.

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

Jegyzetek

Lebegőpontos végtelenségek és NaN

A formátumsztringtől függetlenül, ha egy Decimal.Type, Single.Type vagy Double.Type lebegőpontos típus értéke pozitív végtelen, negatív végtelen vagy nem szám (NaN), akkor a formázott sztring az aktuálisan alkalmazható kultúra által megadott Number.PositiveInfinity, Number.NegativeInfinityvagy Number.NaN állandók értéke.

Kerekítési és rögzítettpontos formázási sztringek

Rögzítettpontos formázási sztringek (azaz olyan formázási sztringek esetén, amelyek nem tartalmaznak tudományos jelölésű formázási karaktereket), a számok annyi tizedesjegyre vannak kerekítve, mint a tizedesvessző jobb oldalán lévő számjegyhelyőrzők. Ha a formátumsztring nem tartalmaz tizedesvesszőt, a szám a legközelebbi egész számra lesz kerekítve. Ha a szám több számjegyet tartalmaz, mint a tizedesvessző bal oldalán található számjegyhelyőrzők, a további számjegyeket a program közvetlenül az első számjegy helyőrzője előtt másolja az eredménysztringbe.

Vissza a táblához

Példa

Az alábbi példa két egyéni numerikus formátumú sztringet mutat be. Mindkét esetben a számjegy helyőrzője (#) megjeleníti a numerikus adatokat, és az összes többi karaktert az eredménysztringbe másolja.

let
    Source =
    {
        Number.ToText(1234567890, "(###) ###-####"),
        // Displays (123) 456-7890

        Number.ToText(42, "My Number = #")
        // Displays My number = 42
    }
in
    Source

Vissza a táblához