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.Type
Int32.Type
, danInt64.Type
. Jenis numerik floating-point adalah Decimal.Type
, , Single.Type
dan 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.Type
Int8.Type
, Int16.Type
, dan Int64.Type
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