Vakiomuotoiset lukumuotoilumerkkijonot
Tavallisia numeerisen muotoilun merkkijonoja käytetään yleisten numerotyyppien muotoilemiseen. Vakiomuotoinen numeerinen muotoilumerkkijono muodostaa lomakkeen [format specifier][precision specifier]
, jossa:
Muotomäärite on yksittäinen aakkosjärjestysmerkki, joka määrittää lukumuodon tyypin, esimerkiksi valuutan tai prosenttiluvun. Mikä tahansa numeerinen muotoilumerkkijono, joka sisältää useamman kuin yhden aakkosmerkin, mukaan lukien välilyönti, tulkitaan mukautetuksi numeromuotomerkkijonoksi. Lisätietoja on kohdassa Mukautetut numeromuotomerkkijonot.
Tarkkuusmäärite on valinnainen kokonaisluku, joka vaikuttaa tulokseksi saatavan merkkijonon numeroiden määrään. Tarkkuusmäärite määrittää luvun merkkijonoesityksen numeroiden määrän.
Kun tarkkuusmäärite määrittää tulosmerkkijonon desimaalinumeroiden määrän, tulosmerkkijono kuvastaa lukua, joka pyöristetään edustamaan tulokseen, joka on lähimpänä äärettömän tarkkaa tulosta.
Muistiinpano
Tarkkuusmäärite määrittää tulosmerkkijonon numeroiden määrän. Jos haluat lisätä tulosmerkkijonoon alussa tai lopussa olevia välilyöntejä tai muita merkkejä (kuten 0), täytä tulosmerkkijono Text.PadStart- ja Text.PadEnd funktioilla ja täytä tulosmerkkijono käyttämällä
count
kokonaispituutta näissä funktioissa.
Number.ToText-funktio tukee vakiomuotoisia numeerisen muotoilun merkkijonoja.
Vakiomuotomäärite
Seuraavassa taulukossa kuvataan numeerisen vakiomuodon määritykset ja näytetään kunkin muotomääriteen tuottama näytetuloste. Huomautukset-osassa on lisätietoja vakiomuotoisten numeromuotomerkkijonojen käytöstä ja Koodiesimerkki-osiosta, jossa on kattava kuva niiden käytöstä.
Muistiinpano
Tietyn maa-asetuksen muotoillun merkkijonon tulos voi erota seuraavista esimerkeistä. Käyttöjärjestelmäasetukset, käyttäjäasetukset, ympäristömuuttujat ja muut käyttämäsi järjestelmän asetukset voivat kaikki vaikuttaa muotoon.
Muotomäärite | Name | Kuvaus | Esimerkit |
---|---|---|---|
"C" tai "c" | Valuutta | Tulos: Valuutta-arvo. Tuettu: Kaikki numeeriset tyypit. Tarkkuusmäärite: Desimaalinumeroiden määrä. Oletustarkkuusmäärite: Maa-asetuksen määrittämä. Lisätietoja: Valuutta ("C") -muodon määritys. |
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" tai "d" | Decimal | Tulos: Kokonaislukunumerot, joissa on valinnainen negatiivinen merkki. Tuettu: vain integraalityypit. Tarkkuusmäärite: Numeroiden vähimmäismäärä. Oletustarkkuusmäärite: Vaadittujen numeroiden vähimmäismäärä. Lisätietoja: Decimal("D") -muodon määrite. |
1234 ("D") –> 1234 -1234 ("D6") -> -001234 |
"E" tai "e" | Eksponentiaalinen (tieteellinen) | Tulos: eksponenttimerkintä. Tuettu: Kaikki numeeriset tyypit. Tarkkuusmäärite: Desimaalinumeroiden määrä. Oletustarkkuusmäärite: 6. Lisätietoja: Eksponenttimuoto ("E") -määrite. |
1052.032912756 ("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" tai "f" | Kiinteä piste | Tulos: integraali- ja desimaalinumerot valinnaisella negatiivisella merkillä. Tuettu: Kaikki numeeriset tyypit. Tarkkuusmäärite: Desimaalinumeroiden määrä. Oletustarkkuusmäärite: Maa-asetuksen määrittämä. Lisätietoja: Fixed-Point ("F") -muotomäärite. |
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" tai "g" | Yleiset | Tulos: Kompaktimpi joko kiinteyden tai tieteellisen merkinnän. Tuettu: Kaikki numeeriset tyypit. Tarkkuusmäärite: Merkittävien numeroiden määrä. Oletusarvoinen tarkkuusmäärite: Riippuu numeerisesta tyypistä. Lisätietoja: Yleinen ("G") -muodon määrite. |
-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" tai "n" | Määrä | Tulos: Integraali- ja desimaalinumerot, ryhmäerottimet ja desimaalierotin valinnaisella negatiivisella merkillä. Tuettu: Kaikki numeeriset tyypit. Tarkkuusmäärite: Haluttu määrä desimaaleja. Oletustarkkuusmäärite: Maa-asetuksen määrittämä. Lisätietoja: Numeerisen muodon ("N") muotomäärite. |
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" tai "p" | Prosentti | Tulos: Luku kerrottuna sadalla ja näytettynä prosenttimerkin kanssa. Tuettu: Kaikki numeeriset tyypit. Tarkkuusmäärite: Haluttu määrä desimaaleja. Oletustarkkuusmäärite: Maa-asetuksen määrittämä. Lisätietoja: Prosenttiluku ("P") -muodon määrite. |
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" tai "x" | Heksadesimaalinen | Tulos: Heksadesimaalimerkkijono. Tuettu: vain integraalityypit. Tarkkuusmäärite: Tulosmerkkijonon numeroiden määrä. Lisätietoja: Heksadesimaalimuotomäärite ("X"). |
255 ("X") -> FF -1 ("x") -> ff 255 ("x4") -> 00ff -1 ("X4") -> 00FF |
Mikä tahansa muu yksittäinen merkki | Tuntematon määrite | Tulos: palauttaa lausekevirheen suorituksen aikana. |
Käytä vakiomuotoisia numeerisia muotoilumerkkijonoja
Numeerisen vakiomuotoisen muotoilumerkkijonon avulla voidaan määrittää numeerisen arvon muotoilu. Se voidaan välittää Number.ToTextformat
-parametriin. Seuraavassa esimerkissä numeerinen arvo muotoillaan valuuttamerkkijonoksi nykyisessä maa-asetussa (tässä tapauksessa maa-asetus en-US).
Number.ToText(123.456, "C2")
// Displays $123.46
Vaihtoehtoisesti voit antaa count
-argumentin Text.PadStart- ja Text.PadEnd-funktioihin, jotta voit määrittää numeerisen kentän leveyden ja sen, onko sen arvo oikea vai tasattu vasemmalle. Esimerkiksi seuraava malli tasaa valuutta-arvon vasemmalle 28-merkkisessä kentässä, ja se tasaa valuutta-arvon oikealle 14-merkkisessä kentässä (käytettäessä tasattua fonttia).
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
Seuraavissa osioissa on yksityiskohtaisia tietoja kustakin vakiomuotoisesta numeerisesta muotoilumerkkijonosta.
Valuuttamuotomäärite (C)
C-muodon (tai valuutan) määritystoiminto muuntaa luvun merkkijonoksi, joka edustaa valuuttasummaa. Tarkkuusmäärite ilmaisee tulosmerkkijonon desimaalien halutun määrän. Jos tarkkuusmäärite jätetään pois, valuutta-arvoissa käytettävien desimaalien oletusmäärä on 2.
Jos muotoillulla arvolla on enemmän kuin määritetty tai oletusarvoinen desimaalien määrä, murtolukuarvo pyöristetään tulosmerkkijonossa. Jos määritettyjen desimaalien määrän oikealla puolella oleva arvo on vähintään 5, tulosmerkkijonon viimeinen numero pyöristetään nollasta poispäin.
Nykyisen maa-asetuksen muotoilutiedot vaikuttavat tulosmerkkijonoon.
Seuraavassa esimerkissä arvo muotoillaan valuuttamuotomääritetyllä tavalla:
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.
Desimaalimuodon määrite (D)
"D" (tai desimaalimuoto) -määrite muuntaa luvun desimaalinumeroiden merkkijonoksi (0–9), jonka etuliitteenä on miinusmerkki, jos luku on negatiivinen. Tätä muotoa tuetaan vain kokonaistyypeille.
Tarkkuusmäärite ilmaisee tulokseksi saatavassa merkkijonossa halutun numeroiden vähimmäismäärän. Tarvittaessa luku on täytetty nollilla sen vasemmalla puolella, jotta saadaan tarkkuusmääriteen numeroiden määrä. Jos tarkkuusmääritettä ei määritetä, oletusarvo on vähimmäisarvo, joka vaaditaan kokonaisluvun esittämiseen ilman edeltäviä nollia.
Nykyisen maa-asetuksen muotoilutiedot vaikuttavat tulosmerkkijonoon.
Seuraavassa esimerkissä muotoillaan arvo desimaalimuotomääriteellä.
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
Eksponentiaalisen muodon määrite (E)
Eksponentiaalisen ("E") muodon määrite muuntaa luvun merkkijonoksi muodossa "-d.ddd... E+ddd" tai "-d.ddd... e+ddd", jossa jokainen "d" ilmaisee numeron (0-9). Merkkijono alkaa miinusmerkillä, jos luku on negatiivinen. Täsmälleen yksi numero edeltää aina desimaalipistettä.
Tarkkuusmäärite ilmaisee haluamasi määrän numeroita desimaalipisteen jälkeen. Jos tarkkuusmäärite jätetään pois, käytetään kuuden numeron oletusarvoa desimaalipisteen jälkeen.
Muotomäärite ilmaisee, lisätäänkö eksponentin etuliitteeksi "E" vai "e". Eksponentti koostuu aina plus- tai miinusmerkistä ja vähintään kolmesta numerosta. Eksponentti on täytetty nollilla, jotta tämä vähimmäisarvo voidaan tarvittaessa täyttää.
Nykyisen maa-asetuksen muotoilutiedot vaikuttavat tulosmerkkijonoon.
Seuraavassa esimerkissä arvo muotoillaan eksponentiaalisen muodon määritteellä:
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
Muistiinpano
Edellisen näytteen Number.ToText viimeisessä parametrissa oleva tyhjä tekstiarvo ("") viittaa muuttumattoman maa-asetuksen.
Kiinteän pisteen muotomäärite (F)
Fixed-point ("F") -muodon määrite muuntaa luvun lomakkeen "-ddd.ddd..." merkkijonoksi. jossa jokainen "d" ilmaisee numeron (0-9). Merkkijono alkaa miinusmerkillä, jos luku on negatiivinen.
Tarkkuusmäärite ilmaisee halutun desimaalien määrän. Jos tarkkuusmäärite jätetään pois, numeerisissa arvoissa käytettävien desimaalien oletusmäärä on 2.
Nykyisen maa-asetuksen muotoilutiedot vaikuttavat tulosmerkkijonoon.
Seuraavassa esimerkissä muotoillaan double- ja kokonaislukuarvo fixed-point-muodon määritteellä:
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
Yleinen muotomäärite (G)
Yleinen ("G") muodon määrite muuntaa luvun kompaktimmaksi joko kiinteän pisteen tai tieteellisen merkinnän tyypistä riippuen luvun tyypistä ja siitä, onko tarkkuusmäärite olemassa. Tarkkuusmäärite määrittää, montako merkitsevää numeroa tulosmerkkijonossa voi olla enintään. Jos tarkkuusmäärite jätetään pois tai se on nolla, luvun tyyppi määrittää oletustarkkuuden seuraavassa taulukossa esitetyllä tavalla.
Numeerinen tyyppi | Oletustarkkuus |
---|---|
Byte.Type tai Int8.Type |
3 numeroa |
Int16.Type |
5 numeroa |
Int32.Type |
10 numeroa |
Int64.Type |
19 numeroa |
Single.Type |
9 numeroa |
Double.Type |
17 numeroa |
Decimal.Type |
15 numeroa |
Kiinteän pisteen merkintätapaa käytetään, jos eksponentti, joka johtaa luvun ilmaisemiseen tieteellisessä merkintätapaan, on suurempi kuin -5 ja pienempi kuin tarkkuusmäärite; muussa tapauksessa käytetään tieteellistä merkintätapaa. Tulos sisältää tarvittaessa desimaalipilkun, ja lopussa olevat nollat desimaalipilkun jälkeen jätetään pois. Jos tarkkuusmäärite on olemassa ja merkittävien numeroiden määrä tuloksessa ylittää määritetyn tarkkuuden, ylimääräiset lopussa olevat numerot poistetaan pyöristämällä.
Jos luku on Decimal.Type
kuitenkin ja tarkkuusmäärite jätetään pois, käytetään aina kiinteän pisteen merkintätapaa ja lopussa olevat nollat säilytetään.
Jos tieteellistä merkintätapaa käytetään, tuloksessa eksponentin etuliitteenä on "E", jos muodon määrite on "G" tai "e", jos muodon määritteenä on "g". Eksponentti sisältää vähintään kaksi numeroa. Tämä eroaa tieteellisen merkinnän muotoilusta, jonka on tuottanut eksponenttimuotomäärite, joka sisältää vähintään kolme numeroa eksponentissa.
Nykyisen maa-asetuksen muotoilutiedot vaikuttavat tulosmerkkijonoon.
Seuraavassa esimerkissä muotoillaan eriteltyjä liukulukuarvoja yleisellä muotomääriteellä:
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
Numeerisen muodon määritys (N)
Numeerisen muodon ("N") muodon määritystoiminto muuntaa luvun muodon "-d,ddd,ddd.ddd..." merkkijonoksi, jossa "-" ilmaisee negatiivisen lukusymbolin tarvittaessa, "d" ilmaisee numeron (0-9), "," osoittaa ryhmäerottimen ja "." osoittaa desimaalipistesymbolin. Tarkkuusmäärite ilmaisee haluamasi määrän numeroita desimaalipisteen jälkeen. Jos tarkkuusmäärite jätetään pois, nykyinen maa-asetus määrittää desimaalien määrän.
Nykyisen maa-asetuksen muotoilutiedot vaikuttavat tulosmerkkijonoon.
Seuraavassa esimerkissä muotoillaan eriteltyjä liukulukuarvoja numeromuodon määritteellä:
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
Prosenttimuotomäärite (P)
Prosenttimuodon ("P") määrite kertoo luvun sadalla ja muuntaa sen merkkijonoksi, joka edustaa prosenttilukua. Tarkkuusmäärite ilmaisee halutun desimaalien määrän. Jos tarkkuusmäärite jätetään pois, käytetään nykyisen maa-asetuksen antamaa oletusarvoista numeerista tarkkuutta.
Seuraavassa esimerkissä muotoillaan liukulukuarvot prosenttimuodon määrityksellä:
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
Heksadesimaalimuodon määrite (X)
Heksadesimaalimuotomäärite ("X") muuntaa luvun heksadesimaalinumeroiden merkkijonoksi. Muotomäärite ilmaisee, käytetäänkö isoja vai pieniä kirjaimia heksadesimaalinumeroissa, joiden arvo on suurempi kuin 9. Voit esimerkiksi tuottaa kohteen "ABCDEF" ja "x" käyttämällä merkkiä "abcdef". Tätä muotoa tuetaan vain kokonaistyypeille.
Tarkkuusmäärite ilmaisee tulokseksi saatavassa merkkijonossa halutun numeroiden vähimmäismäärän. Tarvittaessa luku on täytetty nollilla sen vasemmalla puolella, jotta saadaan tarkkuusmääriteen numeroiden määrä.
Nykyisen maa-asetuksen muotoilutiedot eivät vaikuta tulosmerkkijonoon.
Seuraavassa esimerkissä arvot muotoillaan heksadesimaalimuotomääriteellä.
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
Muistiinpanot
Tässä osiossa on lisätietoja vakiomuotoisten numeeristen muotoilumerkkijonojen käyttämisestä.
Kokonaisluku- ja liukulukutyypit
Jotkin vakiomuotoisen numeerisen muodon määritteiden kuvaukset viittaavat numeerisiin integraali- tai liukulukutyyppeihin. Numeeriset tyypit ovat Byte.Type
, Int8.Type
, Int16.Type
, Int32.Type
jaInt64.Type
. Liukulukutyyppejä ovat Decimal.Type
, Single.Type
ja Double.Type
.
Liukulukuja ei ole 10 ja NaN
Riippumatta muotoilumerkkijonosta, jos Decimal.Type
, Single.Type
tai Double.Type
liukulukutyypin arvo on positiivinen ääretön, negatiivinen ääretön tai ei luku (NaN), muotoiltu merkkijono on kyseisen Number.PositiveInfinity, Number.NegativeInfinitytai Number.NaN vakioiden arvo, joka on määritetty kyseisessä maa-asetusluettelossa.
Koodiesimerkki
Seuraavassa esimerkissä muotoillaan liukuluku ja numeerinen kokonaisarvo käyttämällä en-US-maa-asetusta ja kaikkia vakiomuotoisen numeromuodon määritettä. Tässä esimerkissä käytetään kahta tiettyä numeerista tyyppiä (Double.Type
ja Int32.Type
), mutta tuloksena olisi samankaltaisia tuloksia mille tahansa muulle numeeriselle perustyypille (Byte.Type
, Decimal.Type
, Int8.Type
, Int16.Type
Int64.Type
ja 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