Delen via


Tekenreeksen voor aangepaste numerieke notatie

U kunt een tekenreeks voor een aangepaste numerieke notatie maken, die bestaat uit een of meer aangepaste numerieke aanduidingen, om te definiëren hoe u numerieke gegevens opmaken. Een tekenreeks met een aangepaste numerieke notatie is een notatietekenreeks die geen standaardtekenreeks voor numerieke notatie is.

In de volgende tabel worden de aangepaste numerieke notatieaanduidingen beschreven en wordt voorbeelduitvoer weergegeven die door elke indelingsaanduiding wordt geproduceerd. Ga naar de sectie Notities voor meer informatie over het gebruik van tekenreeksen met aangepaste numerieke notaties en de sectie Voorbeeld voor een uitgebreide illustratie van het gebruik ervan.

Opmaakaanduiding Name Beschrijving Voorbeelden
"0" Tijdelijke aanduiding nul Vervangt de nul door het bijbehorende cijfer als er een aanwezig is; anders wordt nul weergegeven in de resultaattekenreeks.

Meer informatie: De aangepaste aanduiding 0.
1234.5678 ("00000") -> 01235

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

0.45678 ("0,00", fr-FR) -> 0,46
"#" Tijdelijke aanduiding voor cijfers Vervangt het symbool '#' door het bijbehorende cijfer als er een aanwezig is; anders wordt er geen cijfer weergegeven in de resultaattekenreeks.

Er wordt geen cijfer weergegeven in de resultaattekenreeks als het bijbehorende cijfer in de invoertekenreeks een niet-significante 0 is. Bijvoorbeeld 0003 ('####') -> 3.

Meer informatie: De aangepaste aanduiding '#'.
1234.5678 ("#####") -> 1235

0.45678 ("#.#", en-US) -> .46

0.45678 ("#.#", fr-FR) -> ,46
"." Decimaalteken Bepaalt de locatie van het decimaalteken in de resultaattekenreeks.

Meer informatie: De "." Aangepaste aanduiding.
0.45678 ("0,00", en-US) -> 0,46

0.45678 ("0,00", fr-FR) -> 0,46
"," Groepsscheidingsteken en schalen van getallen Fungeert als een groepsscheidingsteken en een aanduiding voor het schalen van getallen. Als groepsscheidingsteken wordt een gelokaliseerd groepsscheidingsteken tussen elke groep ingevoegd. Als aanduiding voor het schalen van getallen wordt een getal met 1000 gedeeld voor elke opgegeven komma.

Meer informatie: De ',' aangepaste aanduiding.
Aanduiding voor groepsscheidingsteken:

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

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

Schaalaanduiding:

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

2147483647 ("#,#,", es-ES) -> 2,147
"%" Tijdelijke aanduiding voor percentage Vermenigvuldigt een getal met 100 en voegt een gelokaliseerd percentagesymbool in de resultaattekenreeks in.

Meer informatie: De aangepaste aanduiding %.
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 %
"‰" Tijdelijke aanduiding per mille Hiermee wordt een getal vermenigvuldigd met 1000 en wordt een gelokaliseerd per mille-symbool in de resultaattekenreeks ingevoegd.

Meer informatie: De aangepaste aanduiding '‰'.
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"
Exponentiële notatie Als er ten minste één 0 (nul) wordt gevolgd, wordt het resultaat opgemaakt met exponentiële notatie. Het geval 'E' of 'e' geeft het hoofdlettergebruik aan van het exponentsymbool in de resultaattekenreeks. Het aantal nullen na het teken 'E' of 'e' bepaalt het minimumaantal cijfers in de exponent. Een plusteken (+) geeft aan dat een teken altijd voorafgaat aan de exponent. Een minteken (-) geeft aan dat een teken voorafgaat aan alleen negatieve exponenten.

Meer informatie: De aangepaste aanduidingen 'E' en 'e'.
987654 ("#0.0e0") -> 98.8e4

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

1.8901385E-16 ("0,0e+00") -> 1,9e-16
"\", "''", """" Escapetekens Zorgt ervoor dat het volgende teken of de volgende tekens worden geïnterpreteerd als een letterlijke tekst in plaats van als een aangepaste notatieaanduiding.

Meer informatie: Escape-tekens.
987654 ("\###00\#") -> #987654#

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

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

"tekenreeks"
Letterlijk tekenreeksscheidingsteken Geeft aan dat de ingesloten tekens moeten worden gekopieerd naar de resultaattekenreeks ongewijzigd.

Meer informatie: letterlijke tekens.
68 ("# 'degrees') -> 68 graden

68 ('#' graden') -> 68 graden
; Sectiescheidingsteken Definieert secties met afzonderlijke notatietekenreeksen voor positieve, negatieve en nul getallen.

Meer informatie: De ";" Sectiescheidingsteken.
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)
Overige Alle andere tekens Het teken wordt ongewijzigd gekopieerd naar de resultaattekenreeks.

Meer informatie: letterlijke tekens.
68 ("# °") -> 68 °

De volgende secties bevatten gedetailleerde informatie over elk van de aangepaste numerieke notatieaanduidingen.

De aangepaste aanduiding 0

De aanduiding voor aangepaste notatie '0' fungeert als een symbool van een tijdelijke aanduiding voor nul. Als de waarde die wordt opgemaakt een cijfer heeft op de positie waar de nul wordt weergegeven in de notatietekenreeks, wordt dat cijfer gekopieerd naar de resultaattekenreeks; anders wordt er een nul weergegeven in de resultaattekenreeks. De positie van de meest linkse nul vóór het decimaalteken en de meest rechtse nul na het decimaalteken bepaalt het bereik van cijfers die altijd aanwezig zijn in de resultaattekenreeks.

De aanduiding '00' zorgt ervoor dat de waarde wordt afgerond op het dichtstbijzijnde cijfer vóór het decimaal, waarbij het afronden van nul altijd wordt gebruikt. Als u bijvoorbeeld 34,5 opmaakt met '00', resulteert dit in de waarde 35.

In het volgende voorbeeld worden verschillende waarden weergegeven die zijn opgemaakt met aangepaste notatietekenreeksen die nul tijdelijke aanduidingen bevatten.

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

Notitie

De lege tekstwaarde ("") in de laatste parameter van Number.ToText in het vorige voorbeeld verwijst naar de invariante cultuur.

Terug naar tabel

De aangepaste aanduiding '#'

De aanduiding voor aangepaste notatie '#' fungeert als een symbool voor een tijdelijke aanduiding voor cijfers. Als de waarde die wordt opgemaakt een cijfer heeft op de positie waar het symbool '#' wordt weergegeven in de notatietekenreeks, wordt dat cijfer gekopieerd naar de resultaattekenreeks. Anders wordt er niets opgeslagen op die positie in de resultaattekenreeks.

Houd er rekening mee dat met deze aanduiding nooit een nul wordt weergegeven die geen significant cijfer is, zelfs als nul het enige cijfer in de tekenreeks is. Het geeft alleen nul weer als het een significant cijfer is in het getal dat wordt weergegeven.

De notatietekenreeks ##zorgt ervoor dat de waarde wordt afgerond op het dichtstbijzijnde cijfer vóór het decimaal, waarbij het afronden van nul altijd wordt gebruikt. Als u bijvoorbeeld 34,5 opmaakt met '##', resulteert dit in de waarde 35.

In het volgende voorbeeld worden verschillende waarden weergegeven die zijn opgemaakt met aangepaste notatietekenreeksen die tijdelijke aanduidingen voor cijfers bevatten.

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

Als u een resultaattekenreeks wilt retourneren waarin ontbrekende cijfers of voorloopnullen worden vervangen door spaties, gebruikt u de Text.PadStart en geeft u een veldbreedte op, zoals in het volgende voorbeeld wordt geïllustreerd.

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'

Terug naar tabel

De aangepaste aanduiding '.'

Met de aanduiding voor aangepaste notatie wordt een gelokaliseerd decimaalteken in de resultaattekenreeks ingevoegd. De eerste punt in de notatietekenreeks bepaalt de locatie van het decimaalteken in de opgemaakte waarde; eventuele extra perioden worden genegeerd. Als de notatieaanduiding eindigt op een '.' worden alleen de significante cijfers opgemaakt in de resultaattekenreeks.

Het teken dat wordt gebruikt als het decimaalteken in de resultaattekenreeks is niet altijd een punt; dit wordt bepaald door de cultuur waarmee de opmaak wordt bepaald.

In het volgende voorbeeld wordt de notatieaanduiding '.' gebruikt om de locatie van het decimaalteken in verschillende resultaattekenreeksen te definiëren.

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

Terug naar tabel

De aangepaste aanduiding ','

Het teken ',' fungeert als een groepsscheidingsteken en een aanduiding voor het schalen van getallen.

  • Groepsscheidingsteken: Als een of meer komma's worden opgegeven tussen twee tijdelijke aanduidingen (0 of #) die de integrale cijfers van een getal opmaken, wordt er een groepsscheidingsteken ingevoegd tussen elke getalgroep in het integraal deel van de uitvoer.

    De cultuur bepaalt het teken dat wordt gebruikt als het scheidingsteken voor getalgroepen en de grootte van elke getalgroep. Als bijvoorbeeld de tekenreeks '#,#' en de invariante cultuur worden gebruikt om het getal 1000 op te maken, is de uitvoer '1000'.

  • Aanduiding voor het schalen van getallen: als een of meer komma's direct links van het expliciete of impliciete decimaalteken worden opgegeven, wordt het getal dat moet worden opgemaakt, gedeeld door 1000 voor elke komma. Als de tekenreeks '0' bijvoorbeeld wordt gebruikt om het getal 100 miljoen op te maken, is de uitvoer '100'.

U kunt groepsscheidingstekens en schaalaanduidingen voor getallen in dezelfde notatietekenreeks gebruiken. Als de tekenreeks #,0 en de invariante cultuur bijvoorbeeld worden gebruikt om het getal één miljard op te maken, is de uitvoer '1000'.

In het volgende voorbeeld ziet u het gebruik van de komma als groepsscheidingsteken.

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

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

In het volgende voorbeeld ziet u het gebruik van de komma als een aanduiding voor het schalen van getallen.

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

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

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

Terug naar tabel

De aangepaste aanduiding %

Een procentteken (%) in een notatietekenreeks zorgt ervoor dat een getal wordt vermenigvuldigd met 100 voordat het wordt opgemaakt. Het gelokaliseerde procentsymbool wordt ingevoegd in het getal op de locatie waar het percentage wordt weergegeven in de notatietekenreeks. Het gebruikte percentageteken wordt gedefinieerd door de cultuur.

In het volgende voorbeeld wordt een tekenreeks met aangepaste notatie gedefinieerd die de aangepaste aanduiding %bevat.

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

Terug naar tabel

De aangepaste aanduiding ‰

Een teken per mille (‰ of \u2030) in een notatietekenreeks zorgt ervoor dat een getal wordt vermenigvuldigd met 1000 voordat het wordt opgemaakt. Het juiste symbool voor mille wordt ingevoegd in de geretourneerde tekenreeks op de locatie waar het symbool ‰ wordt weergegeven in de notatietekenreeks. Het gebruikte milleteken wordt gedefinieerd door de cultuur, die cultuurspecifieke opmaakinformatie biedt.

In het volgende voorbeeld wordt een aangepaste notatietekenreeks gedefinieerd die de aangepaste aanduiding '‰' bevat.

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

Terug naar tabel

De aangepaste aanduidingen 'E' en 'e'

Als een van de tekenreeksen "E", "E+", "E-", "e", "e+" of "e-" aanwezig is in de notatietekenreeks en onmiddellijk wordt gevolgd door ten minste één nul, wordt het getal opgemaakt met behulp van wetenschappelijke notatie met een "E" of "e" ingevoegd tussen het getal en de exponent. Het aantal nullen na de wetenschappelijke notatieindicator bepaalt het minimumaantal cijfers dat moet worden uitgevoerd voor de exponent. De notatie 'E+' en 'e+' geven aan dat een plusteken of minteken altijd vóór de exponent moet gaan. De notatie 'E', 'E-', 'e' of 'e-' geeft aan dat een tekenteken alleen voor negatieve exponenten moet gaan.

In het volgende voorbeeld worden verschillende numerieke waarden opgemaakt met behulp van de aanduidingen voor wetenschappelijke notatie.

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

Terug naar tabel

Escapetekens

De symbolen "#", "0", ".", ",", "%" en "‰" in een notatietekenreeks worden geïnterpreteerd als notatieaanduidingen in plaats van als letterlijke tekens. Afhankelijk van hun positie in een tekenreeks met aangepaste notatie, kunnen de hoofdletters en kleine letters 'E' en de symbolen + en - ook worden geïnterpreteerd als opmaakaanduidingen.

Als u wilt voorkomen dat een teken wordt geïnterpreteerd als opmaakaanduiding, kunt u het volgende doen:

  • Voorafgaan met een backslash.
  • Plaats het met één aanhalingsteken.
  • Plaats het tussen twee dubbele aanhalingstekens.

Elk van deze tekens fungeert als escape-tekens. Het escapeteken geeft aan dat het volgende teken een letterlijke tekenreeks is die niet moet worden opgenomen in de resultaattekenreeks.

Als u een backslash wilt opnemen in een resultaattekenreeks, moet u deze escapen met een andere backslash (\\).

Als u één aanhalingsteken in een resultaattekenreeks wilt opnemen, moet u deze escapen met een backslash (\'). Als een andere enkele aanhalingsteken die niet voorafgaat aan de escaped enkele aanhalingsteken, wordt de backslash weergegeven ('\' wordt weergegeven \).

Als u een dubbele aanhalingsteken wilt opnemen in een resultaattekenreeks, moet u er twee escapen met een backslash (\"").

In het volgende voorbeeld worden escapetekens gebruikt om te voorkomen dat de opmaakbewerking de tekens '#', '0' en '' interpreteert als escapetekens of opmaakaanduidingen.

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

Terug naar tabel

Het scheidingsteken voor de sectie ';'

De puntkomma (;) is een voorwaardelijke opmaakaanduiding die verschillende opmaak toepast op een getal, afhankelijk van of de waarde positief, negatief of nul is. Om dit gedrag te produceren, kan een tekenreeks met aangepaste notatie maximaal drie secties bevatten, gescheiden door puntkomma's. Deze secties worden beschreven in de volgende tabel.

Aantal secties Beschrijving
Eén sectie De notatietekenreeks is van toepassing op alle waarden.
Twee secties De eerste sectie is van toepassing op positieve waarden en nullen, en de tweede sectie is van toepassing op negatieve waarden.

Als het getal dat moet worden opgemaakt negatief is, maar nul wordt na afronding volgens de notatie in de tweede sectie, wordt de resulterende nul opgemaakt volgens de eerste sectie.
Drie secties De eerste sectie is van toepassing op positieve waarden, de tweede sectie is van toepassing op negatieve waarden en de derde sectie is van toepassing op nullen.

De tweede sectie kan leeg blijven (door niets tussen de puntkomma's te hebben), in welk geval de eerste sectie van toepassing is op alle niet-nulwaarden.

Als het getal dat moet worden opgemaakt, niet-nul is, maar nul wordt na afronding volgens de notatie in de eerste of tweede sectie, wordt de resulterende nul opgemaakt volgens de derde sectie.

Sectiescheidingstekens negeren alle bestaande opmaak die aan een getal is gekoppeld wanneer de uiteindelijke waarde is opgemaakt. Negatieve waarden worden bijvoorbeeld altijd weergegeven zonder minteken wanneer sectiescheidingstekens worden gebruikt. Als u wilt dat de uiteindelijke opgemaakte waarde een minteken heeft, moet u het minteken expliciet opnemen als onderdeel van de aangepaste notatieaanduiding.

In het volgende voorbeeld wordt de notatieaanduiding ';' gebruikt om positieve, negatieve en nul getallen anders op te maken.

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

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

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

Terug naar tabel

Letterlijke tekens

Opmaakaanduidingen die worden weergegeven in een aangepaste tekenreeks voor numerieke notatie, worden altijd geïnterpreteerd als opmaaktekens en nooit als letterlijke tekens. Dit omvat de volgende tekens:

Alle andere tekens worden altijd geïnterpreteerd als letterlijke tekens en worden in een opmaakbewerking ongewijzigd in de resultaattekenreeks opgenomen. In een parseringsbewerking moeten ze exact overeenkomen met de tekens in de invoertekenreeks; de vergelijking hoofdlettergevoelig is.

In het volgende voorbeeld ziet u één gemeenschappelijk gebruik van letterlijke tekeneenheden (in dit geval duizenden):

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

Er zijn twee manieren om aan te geven dat tekens moeten worden geïnterpreteerd als letterlijke tekens en niet als opmaaktekens, zodat ze kunnen worden opgenomen in een resultaattekenreeks of met succes worden geparseerd in een invoertekenreeks:

  • Door een opmaakteken te ontsnappen. Ga naar Escape-tekens voor meer informatie.

  • Door de hele letterlijke tekenreeks tussen aanhalingstekens te plaatsen.

In het volgende voorbeeld worden beide benaderingen gebruikt om gereserveerde tekens op te nemen in een aangepaste tekenreeks voor numerieke notatie.

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

Opmerkingen

Drijvendekomma-infiniteiten en NaN

Ongeacht de notatietekenreeks, als de waarde van een Decimal.Type, Single.Type of Double.Type zwevend-kommatype positief oneindig, negatief oneindig of geen getal (NaN) is, is de opgemaakte tekenreeks de waarde van de respectieve Number.PositiveInfinity, Number.NegativeInfinityof Number.NaN constanten die zijn opgegeven door de huidige toepasselijke cultuur.

Tekenreeksen afronden en opmaak met vaste punten

Voor tekenreeksen met vaste punten (dat wil gezegd, notatietekenreeksen die geen wetenschappelijke notatietekens bevatten), worden getallen afgerond op zoveel decimalen als er tijdelijke aanduidingen voor cijfers rechts van het decimaalteken staan. Als de notatietekenreeks geen decimaalteken bevat, wordt het getal afgerond op het dichtstbijzijnde gehele getal. Als het getal meer cijfers bevat dan er tijdelijke aanduidingen voor cijfers links van het decimaalteken staan, worden de extra cijfers direct vóór de eerste tijdelijke aanduiding voor cijfers gekopieerd naar de resultaattekenreeks.

Terug naar tabel

Opmerking

In het volgende voorbeeld ziet u twee tekenreeksen met een aangepaste numerieke notatie. In beide gevallen worden in de tijdelijke aanduiding voor cijfers (#) de numerieke gegevens weergegeven en worden alle andere tekens gekopieerd naar de resultaattekenreeks.

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

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

Terug naar tabel