Del via


Standardstrenge til numerisk format

Standardstrenge til numerisk format bruges til at formatere almindelige numeriske typer. En standardstreng til numerisk format har formatet [format specifier][precision specifier], hvor:

  • Formatangivelse er et enkelt alfabetisk tegn, der angiver talformatet, f.eks. valuta eller procent. Alle numeriske formatstrenge, der indeholder mere end ét alfabetisk tegn, herunder mellemrum, fortolkes som en brugerdefineret streng til numerisk format. Du kan få flere oplysninger ved at gå til Brugerdefinerede numeriske formatstrenge.

  • Præcisionsangivelse er et valgfrit heltal, der påvirker antallet af cifre i den resulterende streng. Præcisionsangivelsen styrer antallet af cifre i strengrepræsentationen af et tal.

    Når præcisionsangivelsen styrer antallet af brøkcifre i resultatstrengen, afspejler resultatstrengen et tal, der afrundes til et repræsentativt resultat, der er tættest på det uendeligt præcise resultat.

    Bemærk

    Præcisionsangivelsen bestemmer antallet af cifre i resultatstrengen. Hvis du vil udfylde en resultatstreng med foranstillede eller efterstillede mellemrum eller andre tegn (f.eks. 0), skal du bruge funktionerne Text.PadStart og Text.PadEnd og bruge den overordnede længde count i disse funktioner til at udfylde resultatstrengen.

Standardstrenge i numerisk format understøttes af funktionen Number.ToText.

Standardformatangivelser

I følgende tabel beskrives de standardangivelser for numeriske formater, og der vises eksempeloutput, der er produceret af hver formatangivelse. Gå til afsnittet Noter for at få flere oplysninger om brug af standardstrenge til numerisk format og afsnittet Kodeeksempel for at få en omfattende illustration af brugen af dem.

Bemærk

Resultatet af en formateret streng for en bestemt kultur kan afvige fra følgende eksempler. Indstillinger for operativsystemet, brugerindstillinger, miljøvariabler og andre indstillinger på det system, du bruger, kan alle påvirke formatet.

Formatangivelse Navn Beskrivelse Eksempler
"C" eller "c" Valuta Resultat: En valutaværdi.

Understøttes af: Alle numeriske typer.

Præcisionsangivelse: Antal decimaltal.

Standardpræcisionsangivelse: Defineret af kulturen.

Flere oplysninger: Valutaformat ("C") Formatangivelse.
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" Decimaltal Resultat: Heltalscifre med valgfrit negativt fortegn.

Understøttes af: Kun integraltyper.

Præcisionsangivelse: Mindste antal cifre.

Standardpræcisionsangivelse: Minimumantal cifre kræves.

Flere oplysninger: Formatangivelsen decimal("D").
1234 ("D")
-> 1234

-1234 ("D6")
-> 001234
"E" eller "e" Eksponentiel (videnskabelig) Resultat: Eksponentiel notation.

Understøttes af: Alle numeriske typer.

Præcisionsangivelse: Antal decimaltal.

Standardpræcisionsangivelse: 6.

Flere oplysninger: Formatangivelsen eksponentielt ("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: Integral- og decimaltal med valgfrit negativt fortegn.

Understøttes af: Alle numeriske typer.

Præcisionsangivelse: Antal decimaltal.

Standardpræcisionsangivelse: Defineret af kulturen.

Flere oplysninger: Formatangivelse for fast punktformat ("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 mere kompakte af enten fastpunkt eller videnskabelig notation.

Understøttes af: Alle numeriske typer.

Præcisionsangivelse: Antal betydende cifre.

Standardpræcisionsangivelse: Afhænger af numerisk type.

Flere oplysninger: Den generelle formatangivelse ("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" Nummer Resultat: Integral- og decimalcifre, gruppeseparatorer og en decimalseparator med valgfrit negativt fortegn.

Understøttes af: Alle numeriske typer.

Præcisionsangivelse: Ønsket antal decimaler.

Standardpræcisionsangivelse: Defineret af kulturen.

Flere oplysninger: Den numeriske formatangivelse ("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" Procent Resultat: Tal ganget med 100 og vist med et procentsymbol.

Understøttes af: Alle numeriske typer.

Præcisionsangivelse: Ønsket antal decimaler.

Standardpræcisionsangivelse: Defineret af kulturen.

Flere oplysninger: Formatangivelsen Procent ("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" Hexadecimal Resultat: En hexadecimal streng.

Understøttes af: Kun integraltyper.

Præcisionsangivelse: Antal cifre i resultatstrengen.

Flere oplysninger: Den hexadecimale formatangivelse ("X").
255 ("X")
-> FF

-1 ("x")
-> ff

255 ("x4")
-> 00ff

-1 ("X4")
-> 00FF
Et hvilket som helst andet enkelt tegn Ukendt specifikation Resultat: Udløser en udtryksfejl på kørselstidspunktet.

Brug standardstrenge til numerisk format

En standardstreng til numerisk format kan bruges til at definere formateringen af en numerisk værdi. Den kan overføres til parameteren Number.ToTextformat. I følgende eksempel formateres en numerisk værdi som en valutastreng i den aktuelle kultur (i dette tilfælde en-US-kulturen).

Number.ToText(123.456, "C2")
// Displays $123.46

Du kan eventuelt angive et count argument i funktionerne Text.PadStart og Text.PadEnd for at angive bredden af det numeriske felt, og om dets værdi er højrejusteret eller venstrejusteret. I følgende eksempel venstrejusteres en valutaværdi f.eks. i et felt på 28 tegn, og den højrejusterer en valutaværdi i et felt på 14 tegn (når der bruges en skrifttype med et monoområde).

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

Følgende afsnit indeholder detaljerede oplysninger om hver af standardstrengene til numerisk format.

Valutaformatangivelse (C)

Formatet "C" (eller valuta) konverterer et tal til en streng, der repræsenterer et valutabeløb. Præcisionsangivelsen angiver det ønskede antal decimaler i resultatstrengen. Hvis præcisionsangivelsen udelades, er standardantallet af decimaler, der skal bruges i valutaværdier, 2.

Hvis den værdi, der skal formateres, har mere end det angivne antal decimaler eller standardantal decimaler, afrundes brøkværdien i resultatstrengen. Hvis værdien til højre for antallet af angivne decimaler er 5 eller større, rundes det sidste ciffer i resultatstrengen væk fra nul.

Resultatstrengen påvirkes af formateringsoplysningerne for den aktuelle kultur.

I følgende eksempel formateres en værdi med valutaformatangivelsen:

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.

Decimalformatangivelse (D)

Angivelsen af formatet "D" (eller decimal) konverterer et tal til en streng med decimaltal (0-9), der er foranstillet med et minustegn, hvis tallet er negativt. Dette format understøttes kun for integraltyper.

Præcisionsangivelsen angiver det mindste antal cifre, der ønskes i den resulterende streng. Hvis det er nødvendigt, udfyldes tallet med nuller til venstre for at producere det antal cifre, der angives af præcisionsangivelsen. Hvis der ikke er angivet en præcisionsangivelse, er standarden den minimumværdi, der kræves for at repræsentere heltalet uden foranstillede nuller.

Resultatstrengen påvirkes af formateringsoplysningerne for den aktuelle kultur.

I følgende eksempel formateres en værdi med decimalformatangivelsen.

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 

Specifikation af eksponentielt format (E)

Den eksponentielle formatangivelse ("E") konverterer et tal til en streng i formatet "-d.ddd... E+ddd" eller "-d.ddd... e+ddd", hvor hvert "d" angiver et ciffer (0-9). Strengen starter med et minustegn, hvis tallet er negativt. Præcis ét ciffer står altid foran decimaltegnet.

Præcisionsangivelsen angiver det ønskede antal cifre efter decimaltegnet. Hvis præcisionsangivelsen udelades, bruges der som standard seks cifre efter decimaltegnet.

Hvis der er tale om en formatangivelse, angiver det, om eksponenten skal foranstilles med et "E" eller et "e". Eksponenten består altid af et plus- eller minustegn og mindst tre cifre. Eksponenten er udpolet med nuller for at opfylde dette minimum, hvis det er nødvendigt.

Resultatstrengen påvirkes af formateringsoplysningerne for den aktuelle kultur.

I følgende eksempel formateres en værdi med den eksponentielle formatangivelse:

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 

Bemærk

Den tomme tekstværdi ("") i den sidste parameter for Number.ToText i det forrige eksempel henviser til den invariante kultur.

Fast punktformatangivelse (F)

Det faste punktformat ("F")-format konverterer et tal til en streng i formatet "-ddd.ddd..." hvor hvert "d" angiver et ciffer (0-9). Strengen starter med et minustegn, hvis tallet er negativt.

Præcisionsangivelsen angiver det ønskede antal decimaler. Hvis præcisionsangivelsen udelades, er standardantallet af decimaler, der skal bruges i numeriske værdier, 2.

Resultatstrengen påvirkes af formateringsoplysningerne for den aktuelle kultur.

I følgende eksempel formateres en dobbeltværdi og en heltalsværdi med angivelse af fast punktformat:

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

Generel formateringsangivelse (G)

Den generelle ("G")-formatangivelse konverterer et tal til den mere kompakte enten faste eller videnskabelige notation, afhængigt af tallets type, og om der findes en præcisionsangivelse. Præcisionsangivelsen definerer det maksimale antal betydende cifre, der kan vises i resultatstrengen. Hvis præcisionsangivelsen udelades eller nul, bestemmer tallets type standardpræcision som angivet i følgende tabel.

Numerisk type Standardpræcision
Byte.Type eller Int8.Type 3 cifre
Int16.Type 5 cifre
Int32.Type 10 cifre
Int64.Type 19 cifre
Single.Type 9 cifre
Double.Type 17 cifre
Decimal.Type 15 cifre

Notation med fast punkt bruges, hvis den eksponent, der ville blive resultatet af at udtrykke tallet i videnskabelig notation, er større end -5 og mindre end præcisionsangivelsen. ellers anvendes videnskabelig notation. Resultatet indeholder et decimaltegn, hvis det er nødvendigt, og efterstillede nuller efter decimaltegnet udelades. Hvis præcisionsangivelsen er til stede, og antallet af betydende cifre i resultatet overskrider den angivne præcision, fjernes de overskydende efterstillede cifre ved afrunding.

Men hvis tallet er en Decimal.Type , og præcisionsangivelsen udelades, bruges notation med fast punkt altid, og efterstillede nuller bevares.

Hvis der bruges videnskabelig notation, får eksponenten i resultatet præfikset "E", hvis formatangivelsen er "G" eller "e", hvis formatangivelsen er "g". Eksponenten indeholder mindst to cifre. Dette adskiller sig fra formatet for videnskabelig notation, der er produceret af den eksponentielle formatangivelse, som omfatter mindst tre cifre i eksponenten.

Resultatstrengen påvirkes af formateringsoplysningerne for den aktuelle kultur.

I følgende eksempel formateres forskellige værdier for flydende tal med den generelle formatangivelse:

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

Numerisk formatangivelse (N)

Den numeriske formatangivelse ("N") konverterer et tal til en streng i formatet "-d,ddd,ddd.ddd...", hvor "-" angiver et negativt talsymbol, hvis det er nødvendigt, "d" angiver et ciffer (0-9), "," angiver en gruppeseparator, og "." angiver et decimaltegnsymbol. Præcisionsangivelsen angiver det ønskede antal cifre efter decimaltegnet. Hvis præcisionsangivelsen udelades, er antallet af decimaler defineret af den aktuelle kultur.

Resultatstrengen påvirkes af formateringsoplysningerne for den aktuelle kultur.

I følgende eksempel formateres forskellige værdier for flydende tal med talformatangivelsen:

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

Procentformatangivelse (P)

Procentformatet ("P") multiplicerer et tal med 100 og konverterer det til en streng, der repræsenterer en procentdel. Præcisionsangivelsen angiver det ønskede antal decimaler. Hvis præcisionsangivelsen udelades, bruges den numeriske standardpræcision, der leveres af den aktuelle kultur.

I følgende eksempel formateres værdier med flydende tal med procentformatangivelsen:

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

Hexadecimal formatangivelse (X)

Den hexadecimale formatangivelse ("X") konverterer et tal til en streng af hexadecimale cifre. Store og små bogstaver i formatangivelsen angiver, om der skal bruges store eller små bogstaver til hexadecimale cifre, der er større end 9. Brug f.eks. "X" til at oprette "ABCDEF" og "x" for at oprette "abcdef". Dette format understøttes kun for integraltyper.

Præcisionsangivelsen angiver det mindste antal cifre, der ønskes i den resulterende streng. Hvis det er nødvendigt, udfyldes tallet med nuller til venstre for at producere det antal cifre, der angives af præcisionsangivelsen.

Resultatstrengen påvirkes ikke af formateringsoplysningerne for den aktuelle kultur.

I følgende eksempel formateres værdier med den hexadecimale formatangivelse.

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

Bemærkninger

Dette afsnit indeholder yderligere oplysninger om brug af standardstrenge til numerisk format.

Numeriske integraltyper og flydende taltyper

Nogle beskrivelser af numeriske standardformatangivelser refererer til numeriske integraltyper eller flydende taltyper. De numeriske integraltyper er Byte.Type, Int8.Type, Int16.Type, Int32.TypeogInt64.Type . Numeriske typer med flydende tal er Decimal.Type, Single.Typeog Double.Type.

Uendeligt flydende tal og NaN

Hvis værdien af en Decimal.Type, Single.Type eller Double.Type flydende taltype er positiv uendelighed, negativ uendelighed eller ikke et tal (NaN), er den formaterede streng værdien af de respektive Number.PositiveInfinity, Number.NegativeInfinityeller Number.NaN konstanter, der er angivet af den aktuelt gældende kultur, uanset formatstrengen.

Kodeeksempel

I følgende eksempel formateres et flydende tal og en integreret numerisk værdi ved hjælp af en-US-kulturen og alle de numeriske standardformatangivelser. I dette eksempel bruges to bestemte numeriske typer (Double.Type og Int32.Type), men det giver tilsvarende resultater for en af de andre numeriske basistyper (Byte.Type, Decimal.Type, Int8.TypeInt16.Type, Int64.Typeog 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