Standard tallformatstrenger
Standard numeriske formatstrenger brukes til å formatere vanlige numeriske typer. En standard numerisk formatstreng tar skjemaet [format specifier][precision specifier]
, der:
Formatantall er et enkelt alfabetisk tegn som angir typen tallformat, for eksempel valuta eller prosent. Alle numeriske formatstrenger som inneholder mer enn ett alfabetisk tegn, inkludert mellomrom, tolkes som en egendefinert numerisk formatstreng. Hvis du vil ha mer informasjon, kan du gå til egendefinerte numeriske formatstrenger.
Presisjonsantall er et valgfritt heltall som påvirker antall sifre i resultatstrengen. Presisjonsangivelsen styrer antall sifre i strengrepresentasjonen av et tall.
Når presisjonsantallet styrer antall brøksifre i resultatstrengen, gjenspeiler resultatstrengen et tall som avrundes til et representerbart resultat nærmest det uendelig nøyaktige resultatet.
Merk
Presisjonsantallet bestemmer antall sifre i resultatstrengen. Hvis du vil legge til en resultatstreng med innledende eller etterfølgende mellomrom eller andre tegn (for eksempel 0), bruker du funksjonene Text.PadStart og Text.PadEnd og bruker den totale lengden
count
i disse funksjonene til å legge til resultatstrengen.
Standard numeriske formatstrenger støttes av Number.ToText-funksjonen.
Standard formatangittere
Tabellen nedenfor beskriver standard tallformatantall og viser eksempelutdata produsert av hver formatangitter. Gå til Notater-delen for mer informasjon om hvordan du bruker standard numeriske formatstrenger, og kodeeksempelinndelingen for en omfattende illustrasjon av bruken.
Merk
Resultatet av en formatert streng for en bestemt kultur kan være forskjellig fra følgende eksempler. Operativsysteminnstillinger, brukerinnstillinger, miljøvariabler og andre innstillinger på systemet du bruker, kan alle påvirke formatet.
Formatantall | Name | Bekrivelse | Eksempler |
---|---|---|---|
"C" eller "c" | Valuta. | Resultat: En valutaverdi. Støttes av: Alle numeriske typer. Presisjonsantall: Antall desimaler. Standard presisjonsantall: Definert av kulturen. Mer informasjon: Formatantallet valuta (C). |
123.456 ("C", en-US) -> \$123.46 123.456 ("C", fr-FR) -> 123 46 € 123.456 ("C", ja-JP) -> ¥123 -123.456 ("C3", en-US) -> (\$123.456) -123.456 ("C3", fr-FR) -> -123 456 € -123.456 ("C3", ja-JP) -> -¥123.456 |
"D" eller "d" | Decimal | Resultat: Heltallssifre med valgfritt negativt tegn. Støttes av: Bare integrerte typer. Presisjonsantall: Minimum antall sifre. Standard presisjonsantall: Minimum antall sifre som kreves. Mer informasjon: Formatantallet desimal("D"). |
1234 ("D") -> 1234 -1234 ("D6") -> 001234 |
"E" eller "e" | Eksponentiell (vitenskapelig) | Resultat: Eksponentiell notasjon. Støttes av: Alle numeriske typer. Presisjonsantall: Antall desimaler. Standard presisjonsantall: 6. Mer informasjon: Formatantallet eksponentiell (E). |
1052.0329112756 ("E", en-US) -> 1.052033E+003 1052.0329112756 ("e", fr-FR) -> 1 052033e+003 -1052.0329112756 ("e2", en-US) -> -1.05e+003 -1052.0329112756 ("E2", fr-FR) -> -1,05E+003 |
"F" eller "f" | Fast punkt | Resultat: Integrerte og desimaler med valgfritt negativt tegn. Støttes av: Alle numeriske typer. Presisjonsantall: Antall desimaler. Standard presisjonsantall: Definert av kulturen. Mer informasjon: Formatantallet fastpunkt (F). |
1234.567 ("F", en-US) -> 1234.57 1234.567 ("F", de-DE) -> 1234,57 1234 ("F1", en-US) -> 1234.0 1234 ("F1", de-DE) -> 1234,0 -1234.56 ("F4", en-US) -> -1234.5600 -1234.56 ("F4", de-DE) -> -1234 5600 |
"G" eller "g" | Generelt | Resultat: Den mer kompakte av enten fast punkt eller vitenskapelig notasjon. Støttes av: Alle numeriske typer. Presisjonsantall: Antall signifikante sifre. Standard presisjonsantall: Avhenger av numerisk type. Mer informasjon: Formatantallet generelt (G). |
-123.456 ("G", en-US) -> -123.456 -123.456 ("G", sv-SE) -> -123 456 123.4546 ("G4", en-US) -> 123,5 123.4546 ("G4", sv-SE) -> 123,5 -1.234567890e-25 ("G", en-US) -> -1.23456789E-25 -1.234567890e-25 ("G", sv-SE) -> -1,23456789E-25 |
"N" eller "n" | Antall | Resultat: Integrerte og desimaler, gruppeskilletegn og et desimalskilletegn med valgfritt negativt tegn. Støttes av: Alle numeriske typer. Presisjonsantall: Ønsket antall desimaler. Standard presisjonsantall: Definert av kulturen. Mer informasjon: Formatantallet (N). |
1234.567 ("N", en-US) -> 1,234.57 1234.567 ("N", ru-RU) -> 1 234,57 1234 ("N1", en-US) -> 1,234.0 1234 ("N1", ru-RU) -> 1 234,0 -1234.56 ("N3", en-US) -> -1,234.560 -1234.56 ("N3", ru-RU) -> -1 234 560 |
"P" eller "p" | Prosent | Resultat: Tall multiplisert med 100 og vist med et prosentsymbol. Støttes av: Alle numeriske typer. Presisjonsantall: Ønsket antall desimaler. Standard presisjonsantall: Definert av kulturen. Mer informasjon: Formatantallet Prosent (P). |
1 ("P", en-US) -> 100,00 % 1 ("P", fr-FR) -> 100 00 % -0.39678 ("P1", en-US) -> -39,7 % -0.39678 ("P1", fr-FR) -> -39,7 % |
"X" eller "x" | Heksadesimal | Resultat: En heksadesimal streng. Støttes av: Bare integrerte typer. Presisjonsantall: Antall sifre i resultatstrengen. Mer informasjon: Formatantallet heksadesimal (X). |
255 ("X") -> FF -1 ("x") -> ff 255 ("x4") -> 00ff -1 ("X4") -> 00FF |
Andre enkelttegn | Ukjent anseer | Resultat: Kaster en uttrykksfeil ved kjøring. |
Bruk standard numeriske formatstrenger
En standard numerisk formatstreng kan brukes til å definere formateringen av en numerisk verdi. Den kan sendes til parameteren Number.ToTextformat
. Eksemplet nedenfor formaterer en numerisk verdi som en valutastreng i gjeldende kultur (i dette tilfellet en-US-kulturen).
Number.ToText(123.456, "C2")
// Displays $123.46
Du kan eventuelt angi et count
argument i funksjonene Text.PadStart og Text.PadEnd for å angi bredden på det numeriske feltet og om verdien er høyre- eller venstrejustert. Eksempelet nedenfor venstrejusterer for eksempel en valutaverdi i et 28-tegns felt, og den høyrejusterer en valutaverdi i et felt med 14 tegn (når du bruker en monoområdeskrift).
let
amounts = {16305.32, 18794.16},
result = Text.Format(" Beginning Balance Ending Balance#(cr,lf) #{0}#{1}",
{
Text.PadEnd(Number.ToText(amounts{0}, "C2"), 28),
Text.PadStart(Number.ToText(amounts{1}, "C2"), 14)
})
in
result
// Displays:
// Beginning Balance Ending Balance
// $16,305.32 $18,794.16
Avsnittene nedenfor gir detaljert informasjon om hver av standard numeriske formatstrenger.
Valutaformatantall (C)
Formatantallet C (eller valuta) konverterer et tall til en streng som representerer et valutabeløp. Presisjonsantallet angir ønsket antall desimaler i resultatstrengen. Hvis presisjonsantallet utelates, er standard antall desimaler som skal brukes i valutaverdier 2.
Hvis verdien som skal formateres, har mer enn angitt eller standard antall desimaler, avrundes brøkverdien i resultatstrengen. Hvis verdien til høyre for antallet angitte desimaler er 5 eller høyere, avrundes det siste sifferet i resultatstrengen bort fra null.
Resultatstrengen påvirkes av formateringsinformasjonen for gjeldende kultur.
Følgende eksempel formaterer en verdi med valutaformatantallet:
let
Source =
{
Number.ToText(12345.6789, "C"),
Number.ToText(12345.6789, "C3"),
Number.ToText(12345.6789, "C3", "da-DK")
}
in
Source
// The example displays the following list on a system whose
// current culture is English (United States):
// $12,345.68
// $12,345.679
// 12.345,679 kr.
Angi desimalformat (D)
Formatantallet D (eller desimal) konverterer et tall til en streng med desimalsifre (0-9), prefikset med et minustegn hvis tallet er negativt. Dette formatet støttes bare for integrerte typer.
Presisjonsantallet angir minimum antall sifre som er ønsket i resultatstrengen. Hvis det er nødvendig, blir tallet polstret med nuller til venstre for å produsere antall sifre gitt av presisjonsantallet. Hvis det ikke er angitt noen presisjonsantall, er standard minimumsverdien som kreves for å representere heltallet uten innledende nuller.
Resultatstrengen påvirkes av formateringsinformasjonen for gjeldende kultur.
Eksemplet nedenfor formaterer en verdi med desimalformatantallet.
let
Source =
{
Number.ToText(12345, "D"),
// Displays 12345
Number.ToText(12345, "D8"),
// Displays 00012345
Number.ToText(-12345, "D"),
// Displays -12345
Number.ToText(-12345, "D8")
// Displays -00012345
}
in
Source
Eksponentielt formatantall (E)
Den eksponentielle formatantallet (E) konverterer et tall til en streng i skjemaet "-d.ddd... E+ddd eller "-d.ddd... e+ddd, der hver "d" angir et siffer (0-9). Strengen starter med et minustegn hvis tallet er negativt. Nøyaktig ett siffer går alltid foran desimaltegnet.
Presisjonsantallet angir ønsket antall sifre etter desimaltegnet. Hvis presisjonsantallet utelates, brukes en standard på seks sifre etter at desimaltegnet er brukt.
Bokstaven for formatantallet angir om eksponenten skal prefikset med en E eller en e. Eksponenten består alltid av et pluss- eller minustegn og minst tre sifre. Eksponenten er polstret med nuller for å oppfylle dette minimumet, om nødvendig.
Resultatstrengen påvirkes av formateringsinformasjonen for gjeldende kultur.
Følgende eksempel formaterer en verdi med det eksponentielle formatantallet:
let
Source =
{
Number.ToText(12345.6789, "E", ""),
// Displays 1.234568E+004
Number.ToText(12345.6789, "E10", ""),
// Displays 1.2345678900E+004
Number.ToText(12345.6789, "e4", ""),
// 1.2346e+004
Number.ToText(12345.6789, "E", "fr-FR")
// Displays 1,234568E+004
}
in
Source
Merk
Den tomme tekstverdien ("") i den siste parameteren for Number.ToText i det forrige eksemplet refererer til den invariante kulturen.
Fast punktformatantall (F)
Formatantallet fast punkt (F) konverterer et tall til en streng i skjemaet "-ddd.ddd..." der hver "d" angir et siffer (0-9). Strengen starter med et minustegn hvis tallet er negativt.
Presisjonsantallet angir ønsket antall desimaler. Hvis presisjonsantallet utelates, er standard antall desimaler som skal brukes i numeriske verdier 2.
Resultatstrengen påvirkes av formateringsinformasjonen for gjeldende kultur.
Det følgende eksemplet formaterer en dobbel verdi og en heltallsverdi med antydningstegnet for fastpunktformat:
let
Source =
{
Number.ToText(17843, "F", ""),
// Displays 17843.00
Number.ToText(-29541, "F3", ""),
// Displays -29541.000
Number.ToText(18934.1879, "F", ""),
// Displays 18934.19
Number.ToText(18934.1879, "F0", ""),
// Displays 18934
Number.ToText(-1898300.1987, "F1", ""),
// Displays -1898300.2
Number.ToText(-1898300.1987, "F3", "es-ES")
// Displays -1898300,199
}
in
Source
Generell formatantall (G)
Den generelle formatantallet (G) konverterer et tall til den mer kompakte enten fastpunkt- eller eksponentielt notasjonen, avhengig av nummertypen og om det finnes en presisjonsangitter. Presisjonsantallet definerer maksimalt antall signifikante sifre som kan vises i resultatstrengen. Hvis presisjonsantallet utelates eller null, bestemmer nummertypen standardpresisjonen, som angitt i tabellen nedenfor.
Numerisk type | Standard presisjon |
---|---|
Byte.Type eller Int8.Type |
Tre sifre |
Int16.Type |
Fem sifre |
Int32.Type |
10 sifre |
Int64.Type |
19 sifre |
Single.Type |
9 sifre |
Double.Type |
17 sifre |
Decimal.Type |
15 sifre |
Fast punkt-notasjon brukes hvis eksponenten som ville resultere i å uttrykke tallet i vitenskapelig notasjon, er større enn -5 og mindre enn presisjonsantallet. Ellers brukes vitenskapelig notasjon. Resultatet inneholder et desimaltegn om nødvendig, og etterfølgende nuller etter desimaltegnet utelates. Hvis presisjonsantallet finnes og antall signifikante sifre i resultatet overskrider den angitte presisjonen, fjernes de overflødige etterfølgende sifrene ved avrunding.
Hvis tallet er a Decimal.Type
og presisjonsantallet utelates, brukes imidlertid notasjon med fast punkt alltid, og etterfølgende nuller beholdes.
Hvis vitenskapelig notasjon brukes, prefikset eksponenten i resultatet med "E" hvis formatangitteren er "G", eller "e" hvis formatangitteren er "g". Eksponenten inneholder minimum to sifre. Dette skiller seg fra formatet for vitenskapelig notasjon som produseres av den eksponentielle formatantallet, som inneholder minst tre sifre i eksponenten.
Resultatstrengen påvirkes av formateringsinformasjonen for gjeldende kultur.
Eksemplet nedenfor formaterer diverse flyttallsverdier med den generelle formatangitteren:
let
Source =
{
Number.ToText(12345.6789, "G", ""),
// Displays 12345.6789
Number.ToText(12345.6789, "G", "fr-FR"),
// Displays 12345,6789
Number.ToText(12345.6789, "G7", ""),
// Displays 12345.68
Number.ToText(.0000023, "G", ""),
// Displays 2.3E-06
Number.ToText(.0000023, "G", "fr-FR"),
// Displays 2,3E-06
Number.ToText(.0023, "G", ""),
// Displays 0.0023
Number.ToText(1234, "G2", ""),
// Displays 1.2E+03
Number.ToText(Number.PI, "G5", "")
// Displays 3.1416
}
in
Source
Tallformatantall (N)
Tallformatantallet (N) konverterer et tall til en streng i skjemaet «-d,ddd,ddd.ddd...», der «-» angir et negativt tallsymbol hvis det er nødvendig, «d» angir et siffer (0-9), «», angir et gruppeskilletegn og «». angir et desimaltegn. Presisjonsantallet angir ønsket antall sifre etter desimaltegnet. Hvis presisjonsantallet utelates, defineres antall desimaler av gjeldende kultur.
Resultatstrengen påvirkes av formateringsinformasjonen for gjeldende kultur.
Følgende eksempel formaterer diverse flyttallsverdier med tallformatantallet:
let
Source =
{
Number.ToText(-12445.6789, "N", ""),
// Displays -12,445.68
Number.ToText(-12445.6789, "N1", "sv-SE"),
// Displays -12 445,7
Number.ToText(123456789, "N1", "")
// Displays 123,456,789.0
}
in
Source
Prosentformatantall (P)
Formatantallet prosent (P) multipliserer et tall med 100 og konverterer det til en streng som representerer en prosentdel. Presisjonsantallet angir ønsket antall desimaler. Hvis presisjonsantallet utelates, brukes standard numerisk presisjon som leveres av gjeldende kultur.
Følgende eksempel formaterer flyttallsverdier med prosentformatantallet:
let
Source =
{
Number.ToText(.2468013, "P", ""),
// Displays 24.68 %
Number.ToText(.2468013, "P", "hr-HR"),
// Displays 24,68 %
Number.ToText(.2468013, "P1", "en-US")
// Displays 24.7%
}
in
Source
Angi heksadesimalformat (X)
Formatantallet heksadesimal (X) konverterer et tall til en streng med heksadesimale sifre. Bokstaven for formatantallet angir om det skal brukes store eller små bokstaver for heksadesimale sifre som er større enn 9. Bruk for eksempel "X" til å produsere "ABCDEF", og "x" for å produsere "abcdef". Dette formatet støttes bare for integrerte typer.
Presisjonsantallet angir minimum antall sifre som er ønsket i resultatstrengen. Hvis det er nødvendig, blir tallet polstret med nuller til venstre for å produsere antall sifre gitt av presisjonsantallet.
Resultatstrengen påvirkes ikke av formateringsinformasjonen for gjeldende kultur.
Eksemplet nedenfor formaterer verdier med det heksadesimale formatantallet.
let
Source =
{
Number.ToText(0x2045e, "x"),
// Displays 2045e
Number.ToText(0x2045e, "X"),
// Displays 2045E
Number.ToText(0x2045e, "X8"),
// Displays 0002045E
Number.ToText(123456789, "X"),
// Displays 75BCD15
Number.ToText(123456789, "X2")
// Displays 75BCD15
}
in
Source
Notater
Denne delen inneholder tilleggsinformasjon om bruk av standard numeriske formatstrenger.
Numeriske typer integrerte og flyttall
Noen beskrivelser av standard tallformatantall refererer til integrerte eller flytende punkt numeriske typer. De integrerte numeriske typene er Byte.Type
, Int8.Type
, Int16.Type
, Int32.Type
ogInt64.Type
. De numeriske typene for flyttall er Decimal.Type
, Single.Type
og Double.Type
.
Flyttallsinfiniteter og NaN
Uavhengig av formatstrengen, hvis verdien for en Decimal.Type
, Single.Type
eller Double.Type
flytende punkttype er positiv uendelighet, negativ uendelighet eller ikke et tall (NaN), er den formaterte strengen verdien for de respektive Number.PositiveInfinity, Number.NegativeInfinityeller Number.NaN konstanter angitt av gjeldende kultur.
Kodeeksempel
Eksemplet nedenfor formaterer et flytende punkt og en integrert numerisk verdi ved hjelp av en-US-kulturen og alle standard tallformatangittere. Dette eksemplet bruker to bestemte numeriske typer (Double.Type
og Int32.Type
), men vil gi lignende resultater for noen av de andre numeriske basistypene (Byte.Type
, , Decimal.Type
, Int8.Type
, Int16.Type
, Int64.Type
og Single.Type
).
let
// Display text representations of numbers for en-US culture
culture = "en-US",
// Output floating point values
floating = Double.From(10761.937554),
#"Floating results" =
{
Text.Format("C: #{0}", {Number.ToText(floating, "C", culture)}), // Displays "C: $10,761.94"
Text.Format("E: #{0}", {Number.ToText(floating, "E03", culture)}), // Displays "E: 1.076E+004"
Text.Format("F: #{0}", {Number.ToText(floating, "F04", culture)}), // Displays "F: 10761.9376"
Text.Format("G: #{0}", {Number.ToText(floating, "G", culture)}), // Displays "G: 10761.937554"
Text.Format("N: #{0}", {Number.ToText(floating, "N03", culture)}), // Displays "N: 10,761.938"
Text.Format("P: #{0}", {Number.ToText(floating/10000, "P02", culture)}) // Displays "P: 107.62%"
},
// Output integral values
integral = Int32.From(8395),
#"Integral results" =
{
Text.Format("C: #{0}", {Number.ToText(integral, "C", culture)}), // Displays "C: $8,395.00"
Text.Format("D: #{0}", {Number.ToText(integral, "D6", culture)}), // Displays "D: 008395"
Text.Format("E: #{0}", {Number.ToText(integral, "E03", culture)}), // Displays "E: 8.395E+003"
Text.Format("F: #{0}", {Number.ToText(integral, "F01", culture)}), // Displays "F: 8395.0"
Text.Format("G: #{0}", {Number.ToText(integral, "G", culture)}), // Displays "G: 8395"
Text.Format("N: #{0}", {Number.ToText(integral, "N01", culture)}), // Displays "N: 8,395.0"
Text.Format("P: #{0}", {Number.ToText(integral/10000, "P02", culture)}), // Displays "P: 83.95%"
Text.Format("X: 0x#{0}", {Number.ToText(integral, "X", culture)}) // Displays "X: 0x20CB"
},
results = #"Floating results" & #"Integral results"
in
results