Del via


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.TypeogInt64.Type. De numeriske typene for flyttall er Decimal.Type, Single.Typeog 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.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