Bagikan melalui


String format numerik standar

String format numerik standar digunakan untuk memformat jenis numerik umum. String format numerik standar mengambil formulir [format specifier][precision specifier], di mana:

  • Penentu format adalah karakter alfabet tunggal yang menentukan jenis format angka, misalnya, mata uang atau persen. Setiap string format numerik yang berisi lebih dari satu karakter abjad, termasuk spasi kosong, ditafsirkan sebagai string format numerik kustom. Untuk informasi selengkapnya, buka String format numerik kustom.

  • Penentu presisi adalah bilangan bulat opsional yang memengaruhi jumlah digit dalam string yang dihasilkan. Penentu presisi mengontrol jumlah digit dalam representasi string angka.

    Ketika penentu presisi mengontrol jumlah digit pecahan dalam string hasil, string hasil mencerminkan angka yang dibulatkan ke hasil yang dapat diwakili yang terdekat dengan hasil yang tak terbatas tepat.

    Catatan

    Penentu presisi menentukan jumlah digit dalam string hasil. Untuk menyatukan string hasil dengan spasi di depan atau di belakang atau karakter lain (seperti 0), gunakan fungsi Text.PadStart dan Text.PadEnd dan gunakan panjang keseluruhan count dalam fungsi-fungsi ini untuk menyatukan string hasil.

String format numerik standar didukung oleh fungsi Number.ToText.

Penentu format standar

Tabel berikut ini menjelaskan penentu format numerik standar dan menampilkan output sampel yang dihasilkan oleh setiap penentu format. Buka bagian Catatan untuk informasi tambahan tentang menggunakan string format numerik standar, dan bagian Contoh kode untuk ilustrasi komprehensif penggunaannya.

Catatan

Hasil string yang diformat untuk budaya tertentu mungkin berbeda dari contoh berikut. Pengaturan sistem operasi, pengaturan pengguna, variabel lingkungan, dan pengaturan lain pada sistem yang Anda gunakan semuanya dapat memengaruhi format.

Penentu format Nama Deskripsi Contoh
"C" or "c" Mata Uang Hasil: Nilai mata uang.

Didukung oleh: Semua jenis numerik.

Penentu presisi: Jumlah digit desimal.

Penentu presisi default: Ditentukan oleh budaya.

Informasi selengkapnya: Penentu Format Mata Uang ("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" atau "d" Decimal Hasil: Digit bilangan bulat dengan tanda negatif opsional.

Didukung oleh: Hanya jenis integral.

Penentu presisi: Jumlah minimum digit.

Penentu presisi default: Jumlah minimum digit yang diperlukan.

Informasi selengkapnya: Penentu Format Desimal("D").
1234 ("D")
-> 1234

-1234 ("D6")
-> -001234
"E" atau "e" Eksponensial (ilmiah) Hasil: Notasi eksponensial.

Didukung oleh: Semua jenis numerik.

Penentu presisi: Jumlah digit desimal.

Penentu presisi default: 6.

Informasi selengkapnya: Penentu Format Eksponensial ("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" atau "f" Titik tetap Hasil: Digit integral dan desimal dengan tanda negatif opsional.

Didukung oleh: Semua jenis numerik.

Penentu presisi: Jumlah digit desimal.

Penentu presisi default: Ditentukan oleh budaya.

Informasi selengkapnya: Penentu Format Fixed-Point ("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" or "g" Umum Hasil: Semakin kompak notasi titik tetap atau notasi ilmiah.

Didukung oleh: Semua jenis numerik.

Penentu presisi: Jumlah digit signifikan.

Penentu presisi default: Tergantung jenis numerik.

Informasi selengkapnya: Penentu Format Umum ("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" atau "n" Number Hasil: Digit integral dan desimal, pemisah grup, dan pemisah desimal dengan tanda negatif opsional.

Didukung oleh: Semua jenis numerik.

Penentu presisi: Jumlah tempat desimal yang diinginkan.

Penentu presisi default: Ditentukan oleh budaya.

Informasi lebih lanjut: Penentu Format Numerik ("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" or "p" Persen Hasil: Angka dikalikan dengan 100 dan ditampilkan dengan simbol persen.

Didukung oleh: Semua jenis numerik.

Penentu presisi: Jumlah tempat desimal yang diinginkan.

Penentu presisi default: Ditentukan oleh budaya.

Informasi selengkapnya: Penentu Format Persen ("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" or "x" Heksadesimal Hasil: String heksadesimal.

Didukung oleh: Hanya jenis integral.

Penentu presisi: Jumlah digit dalam string hasil.

Informasi selengkapnya: Penentu Format Heksadesimal ("X").
255 ("X")
-> FF

-1 ("x")
-> ff

255 ("x4")
-> 00ff

-1 ("X4")
-> 00FF
Setiap karakter tunggal lainnya Penentu tidak dikenal Hasil: Melemparkan kesalahan Ekspresi pada waktu proses.

Menggunakan string format numerik standar

String format numerik standar dapat digunakan untuk menentukan pemformatan nilai numerik. Ini dapat diteruskan ke parameter Number.ToTextformat. Contoh berikut memformat nilai numerik sebagai string mata uang dalam budaya saat ini (dalam hal ini, budaya en-US).

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

Secara opsional, Anda dapat menyediakan argumen count dalam fungsi Text.PadStart dan Text.PadEnd untuk menentukan lebar bidang numerik dan apakah nilainya rata kanan atau kiri. Misalnya, sampel berikut menyelaraskan nilai mata uang dalam bidang 28 karakter, dan rata kanan nilai mata uang dalam bidang 14 karakter (saat menggunakan font monospace).

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

Bagian berikut memberikan informasi mendetail tentang setiap string format numerik standar.

Penentu format mata uang (C)

Penentu format "C" (atau mata uang) mengonversi angka menjadi string yang mewakili jumlah mata uang. Penentu presisi menunjukkan jumlah tempat desimal yang diinginkan dalam string hasil. Jika penentu presisi dihilangkan, jumlah default tempat desimal yang digunakan dalam nilai mata uang adalah 2.

Jika nilai yang akan diformat memiliki lebih dari jumlah tempat desimal yang ditentukan atau default, nilai pecahan dibulatkan dalam string hasil. Jika nilai di sebelah kanan jumlah tempat desimal yang ditentukan adalah 5 atau lebih besar, digit terakhir dalam string hasil dibulatkan dari nol.

String hasil dipengaruhi oleh informasi pemformatan budaya saat ini.

Contoh berikut memformat nilai dengan penentu format mata uang:

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.

Penentu format desimal (D)

Penentu format "D" (atau desimal) mengonversi angka menjadi string digit desimal (0-9), diawali dengan tanda minus jika angkanya negatif. Format ini hanya didukung untuk jenis integral.

Penentu presisi menunjukkan jumlah minimum digit yang diinginkan dalam string yang dihasilkan. Jika diperlukan, angka diisi dengan nol di sebelah kirinya untuk menghasilkan jumlah digit yang diberikan oleh penentu presisi. Jika tidak ada penentu presisi yang ditentukan, default-nya adalah nilai minimum yang diperlukan untuk mewakili bilangan bulat tanpa diawali nol.

String hasil dipengaruhi oleh informasi pemformatan budaya saat ini.

Contoh berikut memformat nilai dengan penentu format desimal.

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 

Penentu format eksponensial (E)

Penentu format eksponensial ("E") mengonversi angka menjadi string formulir "-d.ddd... E+ddd" atau "-d.ddd... e+ddd", di mana setiap "d" menunjukkan digit (0-9). String dimulai dengan tanda minus jika angkanya negatif. Tepat satu digit selalu mendahului titik desimal.

Penentu presisi menunjukkan jumlah digit yang diinginkan setelah titik desimal. Jika penentu presisi dihilangkan, default enam digit setelah titik desimal digunakan.

Kasus penentu format menunjukkan apakah akan mengawali eksponen dengan "E" atau "e". Eksponen selalu terdiri dari tanda plus atau minus dan minimal tiga digit. Eksponen dilapisi dengan nol untuk memenuhi minimum ini, jika diperlukan.

String hasil dipengaruhi oleh informasi pemformatan budaya saat ini.

Contoh berikut memformat nilai dengan penentu format eksponensial:

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 

Catatan

Nilai teks kosong ("") dalam parameter terakhir Number.ToText dalam sampel sebelumnya mengacu pada budaya invarian.

Penentu format titik tetap (F)

Penentu format titik tetap ("F") mengonversi angka menjadi string formulir "-ddd.ddd..." di mana setiap "d" menunjukkan digit (0-9). String dimulai dengan tanda minus jika angkanya negatif.

Penentu presisi menunjukkan jumlah tempat desimal yang diinginkan. Jika penentu presisi dihilangkan, jumlah default tempat desimal yang akan digunakan dalam nilai numerik adalah 2.

String hasil dipengaruhi oleh informasi pemformatan budaya saat ini.

Contoh berikut memformat nilai ganda dan bilangan bulat dengan penentu format titik tetap:

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

Penentu format umum (G)

Penentu format umum ("G") mengonversi angka menjadi lebih ringkas baik dari notasi titik tetap atau ilmiah, tergantung jenis angka dan apakah penentu presisi ada. Penentu presisi menentukan jumlah maksimum digit signifikan yang dapat muncul dalam string hasil. Jika penentu presisi dihilangkan atau nol, jenis angka menentukan presisi default, seperti yang ditunjukkan dalam tabel berikut.

Jenis numerik Presisi default
Byte.Type atau Int8.Type 3 digit
Int16.Type 5 digit
Int32.Type 10 digit
Int64.Type 19 digit
Single.Type 9 digit
Double.Type 17 digit
Decimal.Type 15 digit

Notasi titik tetap digunakan jika eksponen yang akan dihasilkan dari mengekspresikan angka dalam notasi ilmiah lebih besar dari -5 dan kurang dari penentu presisi; jika tidak, notasi ilmiah digunakan. Hasilnya berisi titik desimal jika diperlukan, dan nol berikutnya setelah titik desimal dihilangkan. Jika penentu presisi ada dan jumlah digit signifikan dalam hasil melebihi presisi yang ditentukan, digit berikutnya akan dihapus dengan pembulatan.

Namun, jika angka adalah Decimal.Type dan penentu presisi dihilangkan, notasi titik tetap selalu digunakan dan nol berikutnya dipertahankan.

Jika notasi ilmiah digunakan, eksponen dalam hasil diawali dengan "E" jika penentu format adalah "G", atau "e" jika penentu format adalah "g". Eksponen berisi minimal dua digit. Ini berbeda dari format untuk notasi ilmiah yang diproduksi oleh penentu format eksponensial, yang mencakup minimal tiga digit dalam eksponen.

String hasil dipengaruhi oleh informasi pemformatan budaya saat ini.

Contoh berikut memformat nilai floating-point bermakna dengan penentu format umum:

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

Penentu format numerik (N)

Penentu format numerik ("N") mengonversi angka menjadi string formulir "-d,ddd,ddd.ddd...", di mana "-" menunjukkan simbol angka negatif jika diperlukan, "d" menunjukkan digit (0-9), "," menunjukkan pemisah grup, dan "." menunjukkan simbol titik desimal. Penentu presisi menunjukkan jumlah digit yang diinginkan setelah titik desimal. Jika penentu presisi dihilangkan, jumlah tempat desimal ditentukan oleh budaya saat ini.

String hasil dipengaruhi oleh informasi pemformatan budaya saat ini.

Contoh berikut memformat nilai floating-point bermakna dengan penentu format angka:

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

Penentu format persen (P)

Penentu format persen ("P") mengalikan angka dengan 100 dan mengonversinya menjadi string yang mewakili persentase. Penentu presisi menunjukkan jumlah tempat desimal yang diinginkan. Jika penentu presisi dihilangkan, presisi numerik default yang disediakan oleh budaya saat ini digunakan.

Contoh berikut memformat nilai floating-point dengan penentu format persen:

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

Penentu format heksadesimal (X)

Penentu format heksadesimal ("X") mengonversi angka menjadi string digit heksadesimal. Kasus penentu format menunjukkan apakah akan menggunakan karakter huruf besar atau huruf kecil untuk digit heksadesimal yang lebih besar dari 9. Misalnya, gunakan "X" untuk menghasilkan "ABCDEF", dan "x" untuk menghasilkan "abcdef". Format ini hanya didukung untuk jenis integral.

Penentu presisi menunjukkan jumlah minimum digit yang diinginkan dalam string yang dihasilkan. Jika diperlukan, angka diisi dengan nol di sebelah kirinya untuk menghasilkan jumlah digit yang diberikan oleh penentu presisi.

String hasil tidak terpengaruh oleh informasi pemformatan budaya saat ini.

Contoh berikut memformat nilai dengan penentu format heksadesimal.

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

Catatan

Bagian ini berisi informasi tambahan tentang menggunakan string format numerik standar.

Jenis numerik integral dan floating-point

Beberapa deskripsi penentu format numerik standar mengacu pada jenis numerik integral atau floating-point. Jenis numerik integral adalah Byte.Type, , Int8.Type, Int16.TypeInt32.Type, danInt64.Type. Jenis numerik floating-point adalah Decimal.Type, , Single.Typedan Double.Type.

Tak terhingga floating point dan NaN

Terlepas dari string format, jika nilai Decimal.Type, Single.Type atau jenis titik mengambang Double.Type adalah infinitas positif, tak terbatas negatif, atau bukan angka (NaN), string yang diformat adalah nilai masing-masing Number.PositiveInfinity, Number.NegativeInfinity, atau konstanta Number.NaN yang ditentukan oleh budaya yang berlaku saat ini.

Contoh kode

Contoh berikut memformat titik mengambang dan nilai numerik integral menggunakan budaya en-US dan semua penentu format numerik standar. Contoh ini menggunakan dua jenis numerik tertentu (Double.Type dan ), tetapi akan menghasilkan hasil yang sama untuk salah satu jenis dasar numerik lainnya (Int32.Type, , Byte.Type, Decimal.TypeInt8.Type, Int16.Type, dan Int64.TypeSingle.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