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