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, lihat String format numerik kustom.
Penentu presisi adalah bilangan bulat opsional yang memengaruhi jumlah digit dalam string yang dihasilkan. Dalam .NET 7 dan versi yang lebih baru, nilai presisi maksimum adalah 999.999.999. Dalam .NET 6, nilai presisi maksimum adalah Int32.MaxValue. Dalam versi .NET sebelumnya, presisi dapat berkisar antara 0 hingga 99. Penentu presisi mengontrol jumlah digit dalam representasi string angka. Ini tidak membulatkan angka itu sendiri. Untuk melakukan operasi pembulatan, gunakan metode Math.Ceiling, Math.Floor, atau Math.Round.
Saat penentu presisi mengontrol jumlah digit pecahan dalam string hasil, string hasil mencerminkan angka yang dibulatkan ke hasil yang dapat direpresentasikan terdekat dengan hasil yang sangat tepat. Jika ada dua hasil yang sama-sama dekat yang dapat diwakili:
- Pada .NET Framework dan .NET Core hingga .NET Core 2.0, runtime memilih hasil dengan digit paling signifikan yang lebih besar (yaitu, menggunakan MidpointRounding.AwayFromZero).
- Pada .NET Core 2.1 dan yang lebih baru, runtime memilih hasil dengan digit paling tidak signifikan (yaitu, menggunakan MidpointRounding.ToEven).
Catatan
Penentu presisi menentukan jumlah digit dalam string hasil. Untuk mengisi string hasil dengan spasi awal atau akhir, gunakan fitur pemformatan gabungan dan tentukan komponen perataan dalam item format.
String format numerik standar didukung oleh:
Beberapa overload metode
ToString
dari semua jenis numerik. Misalnya, Anda dapat menyediakan string format numerik ke metode Int32.ToString(String) dan Int32.ToString(String, IFormatProvider).Metode
TryFormat
dari semua jenis numerik, misalnya, Int32.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) dan Single.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)..NET fitur pemformatan komposit, yang digunakan oleh beberapa metode
Write
danWriteLine
dari kelas Console dan StreamWriter, metode String.Format, dan metode StringBuilder.AppendFormat. Fitur format komposit memungkinkan Anda menyertakan representasi string dari beberapa item data dalam satu string, untuk menentukan lebar bidang, dan untuk meratakan angka dalam bidang. Untuk informasi selengkapnya, lihat Pemformatan Komposit.String yang diinterpolasi dalam C# dan Visual Basic, yang menyediakan sintaks yang disederhanakan jika dibandingkan dengan string format komposit.
Tip
Anda dapat mengunduh Utilitas Pemformatan, aplikasi .NET Core Formulir Windows yang memungkinkan Anda menerapkan string format ke nilai numerik atau tanggal dan waktu dan menampilkan string hasil. Kode sumber tersedia untuk C# dan Visual Basic.
Penentu format standar
Tabel berikut ini menjelaskan penentu format numerik standar dan menampilkan output sampel yang dihasilkan oleh setiap penentu format. Lihat bagian Catatan untuk informasi tambahan tentang menggunakan string format numerik standar, dan bagian Contoh kode untuk ilustrasi komprehensif penggunaannya.
Hasil string yang diformat untuk budaya tertentu mungkin berbeda dari contoh berikut. Pengaturan sistem operasi, pengaturan pengguna, variabel lingkungan, dan versi .NET yang Anda gunakan semuanya dapat memengaruhi format. Misalnya, dimulai dengan .NET 5, .NET mencoba menyatukan format budaya di seluruh platform. Untuk informasi selengkapnya, lihat globalisasi .NET dan ICU.
Penentu format | Nama | Deskripsi | Contoh |
---|---|---|---|
"B" atau "b" | Biner | Hasil: String biner. Didukung oleh: Jenis integral saja (.NET 8+). Penentu presisi: Jumlah digit dalam string hasil. Informasi selengkapnya: Penentu Format Biner ("B"). |
42 ("B") -> 101010 255 ("b16") -> 0000000011111111 |
"C" or "c" | Mata uang | Hasil: Nilai mata uang. Didukung oleh: Semua jenis numerik. Penentu presisi: Jumlah digit desimal. Penentu presisi default: Ditentukan oleh NumberFormatInfo.CurrencyDecimalDigits. 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" | Desimal | 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 NumberFormatInfo.NumberDecimalDigits. 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" | Telepon | 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 NumberFormatInfo.NumberDecimalDigits. 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 NumberFormatInfo.PercentDecimalDigits. 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 % |
"R" atau "r" | Dua arah | Hasil: String yang dapat melakukan dua arah ke angka yang identik. Didukung oleh: Single, Double, dan BigInteger. Catatan: Direkomendasikan untuk jenis BigInteger saja. Untuk tipe Double, gunakan "G17"; untuk jenis Single, gunakan "G9". Penentu presisi: Diabaikan. Informasi selengkapnya: Penentu Format Dua Arah ("R"). |
123456789.12345678 ("R") -> 123456789.12345678 -1234567890.12345678 ("R") -> -1234567890.1234567 |
"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: Menampilkan FormatException pada runtime. |
Menggunakan string format numerik standar
Catatan
Contoh C# dalam artikel ini dijalankan di Try.NET pelari kode sebaris dan taman bermain. Pilih tombol Jalankan untuk menjalankan contoh di jendela interaktif. Setelah Anda menjalankan kode, Anda dapat memodifikasinya dan menjalankan kode yang dimodifikasi dengan memilih Jalankan lagi. Kode yang dimodifikasi berjalan di jendela interaktif atau, jika kompilasi gagal, jendela interaktif menampilkan semua pesan kesalahan pengompilasi C#.
String format numerik standar dapat digunakan untuk menentukan pemformatan nilai numerik dengan salah satu cara berikut:
Ini dapat diteruskan ke metode
TryFormat
atau overload metodeToString
yang memiliki parameterformat
. Contoh berikut memformat nilai numerik sebagai string mata uang dalam budaya saat ini (dalam hal ini, budaya en-US).Decimal value = static_cast<Decimal>(123.456); Console::WriteLine(value.ToString("C2")); // Displays $123.46
decimal value = 123.456m; Console.WriteLine(value.ToString("C2")); // Displays $123.46
Dim value As Decimal = 123.456d Console.WriteLine(value.ToString("C2")) ' Displays $123.46
Ini dapat diberikan sebagai argumen
formatString
dalam item format yang digunakan dengan metode seperti String.Format, Console.WriteLine, dan StringBuilder.AppendFormat. Untuk informasi selengkapnya, lihat Pemformatan Komposit. Contoh berikut menggunakan item format untuk menyisipkan nilai mata uang dalam string.Decimal value = static_cast<Decimal>(123.456); Console::WriteLine("Your account balance is {0:C2}.", value); // Displays "Your account balance is $123.46."
decimal value = 123.456m; Console.WriteLine("Your account balance is {0:C2}.", value); // Displays "Your account balance is $123.46."
Dim value As Decimal = 123.456d Console.WriteLine("Your account balance is {0:C2}.", value) ' Displays "Your account balance is $123.46."
Secara opsional, Anda dapat menyediakan argumen
alignment
untuk menentukan lebar bidang numerik dan apakah nilainya rata kanan atau kiri. Contoh berikut menyelaraskan kiri nilai mata uang dalam bidang 28 karakter, dan rata kanan nilai mata uang dalam bidang 14 karakter.array<Decimal>^ amounts = { static_cast<Decimal>(16305.32), static_cast<Decimal>(18794.16) }; Console::WriteLine(" Beginning Balance Ending Balance"); Console::WriteLine(" {0,-28:C2}{1,14:C2}", amounts[0], amounts[1]); // Displays: // Beginning Balance Ending Balance // $16,305.32 $18,794.16
decimal[] amounts = { 16305.32m, 18794.16m }; Console.WriteLine(" Beginning Balance Ending Balance"); Console.WriteLine(" {0,-28:C2}{1,14:C2}", amounts[0], amounts[1]); // Displays: // Beginning Balance Ending Balance // $16,305.32 $18,794.16
Dim amounts() As Decimal = {16305.32d, 18794.16d} Console.WriteLine(" Beginning Balance Ending Balance") Console.WriteLine(" {0,-28:C2}{1,14:C2}", amounts(0), amounts(1)) ' Displays: ' Beginning Balance Ending Balance ' $16,305.32 $18,794.16
Ini dapat disediakan sebagai argumen
formatString
dalam item ekspresi terinterpolasi dari string terinterpolasi. Untuk informasi selengkapnya, lihat artikel Interpolasi string dalam referensi C# atau artikel Interpolasi string dalam referensi Visual Basic.
Bagian berikut memberikan informasi mendetail tentang setiap string format numerik standar.
Penentu format biner (B)
Penentu format biner ("B") mengonversi angka menjadi string digit biner. Format ini hanya didukung untuk jenis integral dan hanya pada .NET 8+.
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 objek NumberFormatInfo saat ini.
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, presisi default ditentukan oleh properti NumberFormatInfo.CurrencyDecimalDigits.
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 objek saat ini NumberFormatInfo . Tabel berikut ini mencantumkan NumberFormatInfo properti yang mengontrol pemformatan string yang dikembalikan.
Properti NumberFormatInfo | Deskripsi |
---|---|
CurrencyPositivePattern | Menentukan penempatan simbol mata uang untuk nilai positif. |
CurrencyNegativePattern | Menentukan penempatan simbol mata uang untuk nilai negatif, dan menentukan apakah tanda negatif diwakili oleh tanda kurung atau properti NegativeSign. |
NegativeSign | Menentukan tanda negatif yang digunakan jika CurrencyNegativePattern menunjukkan bahwa tanda kurung tidak digunakan. |
CurrencySymbol | Mendefinisikan simbol mata uang. |
CurrencyDecimalDigits | Menentukan jumlah default digit desimal dalam nilai mata uang. Nilai ini dapat ditimpa dengan menggunakan penentu presisi. |
CurrencyDecimalSeparator | Menentukan string yang memisahkan digit integral dan desimal. |
CurrencyGroupSeparator | Menentukan string yang memisahkan grup angka integral. |
CurrencyGroupSizes | Menentukan jumlah digit bilangan bulat yang muncul dalam grup. |
Contoh berikut memformat nilai Double dengan penentu format mata uang:
double value = 12345.6789;
Console::WriteLine(value.ToString("C", CultureInfo::CurrentCulture));
Console::WriteLine(value.ToString("C3", CultureInfo::CurrentCulture));
Console::WriteLine(value.ToString("C3",
CultureInfo::CreateSpecificCulture("da-DK")));
// The example displays the following output on a system whose
// current culture is English (United States):
// $12,345.68
// $12,345.679
// kr 12.345,679
double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));
Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture));
Console.WriteLine(value.ToString("C3",
CultureInfo.CreateSpecificCulture("da-DK")));
// The example displays the following output on a system whose
// current culture is English (United States):
// $12,345.68
// $12,345.679
// 12.345,679 kr
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture))
Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture))
Console.WriteLine(value.ToString("C3", _
CultureInfo.CreateSpecificCulture("da-DK")))
' The example displays the following output on a system whose
' current culture is English (United States):
' $12,345.68
' $12,345.679
' kr 12.345,679
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 objek saat ini NumberFormatInfo . Seperti yang ditunjukkan tabel berikut, satu properti memengaruhi pemformatan string hasil.
Properti NumberFormatInfo | Deskripsi |
---|---|
NegativeSign | Menentukan string yang menunjukkan bahwa angka negatif. |
Contoh berikut memformat nilai Int32 dengan penentu format desimal.
int value;
value = 12345;
Console::WriteLine(value.ToString("D"));
// Displays 12345
Console::WriteLine(value.ToString("D8"));
// Displays 00012345
value = -12345;
Console::WriteLine(value.ToString("D"));
// Displays -12345
Console::WriteLine(value.ToString("D8"));
// Displays -00012345
int value;
value = 12345;
Console.WriteLine(value.ToString("D"));
// Displays 12345
Console.WriteLine(value.ToString("D8"));
// Displays 00012345
value = -12345;
Console.WriteLine(value.ToString("D"));
// Displays -12345
Console.WriteLine(value.ToString("D8"));
// Displays -00012345
Dim value As Integer
value = 12345
Console.WriteLine(value.ToString("D"))
' Displays 12345
Console.WriteLine(value.ToString("D8"))
' Displays 00012345
value = -12345
Console.WriteLine(value.ToString("D"))
' Displays -12345
Console.WriteLine(value.ToString("D8"))
' Displays -00012345
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 objek saat ini NumberFormatInfo . Tabel berikut ini mencantumkan NumberFormatInfo properti yang mengontrol pemformatan string yang dikembalikan.
Properti NumberFormatInfo | Deskripsi |
---|---|
NegativeSign | Menentukan string yang menunjukkan bahwa angka negatif untuk koefisien dan eksponen. |
NumberDecimalSeparator | Menentukan string yang memisahkan digit integral dari digit desimal dalam koefisien. |
PositiveSign | Menentukan string yang menunjukkan bahwa eksponen positif. |
Contoh berikut memformat nilai Double dengan penentu format eksponensial:
double value = 12345.6789;
Console::WriteLine(value.ToString("E", CultureInfo::InvariantCulture));
// Displays 1.234568E+004
Console::WriteLine(value.ToString("E10", CultureInfo::InvariantCulture));
// Displays 1.2345678900E+004
Console::WriteLine(value.ToString("e4", CultureInfo::InvariantCulture));
// Displays 1.2346e+004
Console::WriteLine(value.ToString("E",
CultureInfo::CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
double value = 12345.6789;
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture));
// Displays 1.234568E+004
Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture));
// Displays 1.2345678900E+004
Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture));
// Displays 1.2346e+004
Console.WriteLine(value.ToString("E",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture))
' Displays 1.234568E+004
Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture))
' Displays 1.2345678900E+004
Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture))
' Displays 1.2346e+004
Console.WriteLine(value.ToString("E", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 1,234568E+004
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, properti NumberFormatInfo.NumberDecimalDigits saat ini memasok presisi numerik.
String hasil dipengaruhi oleh informasi pemformatan objek saat ini NumberFormatInfo . Tabel berikut mencantumkan properti objek NumberFormatInfo yang dapat mengontrol pemformatan string yang dihasilkan.
Properti NumberFormatInfo | Deskripsi |
---|---|
NegativeSign | Menentukan string yang menunjukkan bahwa angka negatif. |
NumberDecimalSeparator | Menentukan string yang memisahkan digit integral dari digit desimal. |
NumberDecimalDigits | Menentukan jumlah default digit desimal. Nilai ini dapat ditimpa dengan menggunakan penentu presisi. |
Contoh berikut memformat nilai Double dan Int32 dengan penentu format titik tetap:
int integerNumber;
integerNumber = 17843;
Console::WriteLine(integerNumber.ToString("F",
CultureInfo::InvariantCulture));
// Displays 17843.00
integerNumber = -29541;
Console::WriteLine(integerNumber.ToString("F3",
CultureInfo::InvariantCulture));
// Displays -29541.000
double doubleNumber;
doubleNumber = 18934.1879;
Console::WriteLine(doubleNumber.ToString("F", CultureInfo::InvariantCulture));
// Displays 18934.19
Console::WriteLine(doubleNumber.ToString("F0", CultureInfo::InvariantCulture));
// Displays 18934
doubleNumber = -1898300.1987;
Console::WriteLine(doubleNumber.ToString("F1", CultureInfo::InvariantCulture));
// Displays -1898300.2
Console::WriteLine(doubleNumber.ToString("F3",
CultureInfo::CreateSpecificCulture("es-ES")));
// Displays -1898300,199
int integerNumber;
integerNumber = 17843;
Console.WriteLine(integerNumber.ToString("F",
CultureInfo.InvariantCulture));
// Displays 17843.00
integerNumber = -29541;
Console.WriteLine(integerNumber.ToString("F3",
CultureInfo.InvariantCulture));
// Displays -29541.000
double doubleNumber;
doubleNumber = 18934.1879;
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture));
// Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture));
// Displays 18934
doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture));
// Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3",
CultureInfo.CreateSpecificCulture("es-ES")));
// Displays -1898300,199
Dim integerNumber As Integer
integerNumber = 17843
Console.WriteLine(integerNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 17843.00
integerNumber = -29541
Console.WriteLine(integerNumber.ToString("F3", CultureInfo.InvariantCulture))
' Displays -29541.000
Dim doubleNumber As Double
doubleNumber = 18934.1879
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture))
' Displays 18934
doubleNumber = -1898300.1987
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture))
' Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3", _
CultureInfo.CreateSpecificCulture("es-ES")))
' Displays -1898300,199
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 atau SByte | 3 digit |
Int16 atau UInt16 | 5 digit |
Int32 atau UInt32 | 10 digit |
Int64 | 19 digit |
UInt64 | 20 digit |
BigInteger | Tidak terbatas (sama dengan "R") |
Half | Jumlah digit round-trippable terkecil untuk mewakili angka |
Single | Jumlah digit round-trippable terkecil untuk mewakili angka (dalam .NET Framework, G7 adalah default) |
Double | Jumlah digit round-trippable terkecil untuk mewakili angka (dalam .NET Framework, G15 adalah default) |
Decimal | Jumlah digit round-trippable terkecil untuk mewakili angka |
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 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.
Saat digunakan dengan nilai Double, penentu format "G17" memastikan bahwa nilai Double asli berhasil melakukan format dua arah. Ini karena Double adalah angka titik floating presisi ganda yang mematuhi IEEE 754-2008 (binary64
) yang memberikan hingga 17 digit presisi signifikan. Pada .NET Framework, kami menyarankan penggunaannya sebagai ganti penentu format "R", karena dalam beberapa kasus "R" gagal mengembalikan nilai floating point presisi ganda dengan sukses.
Saat digunakan dengan nilai Single, penentu format "G9" memastikan bahwa nilai Single asli berhasil melakukan format dua arah. Ini karena Single adalah angka titik floating presisi tunggal yang mematuhi IEEE 754-2008 (binary32
) yang memberikan hingga sembilan digit presisi yang signifikan. Untuk alasan performa, kami menyarankan penggunaannya sebagai ganti penentu format "R".
String hasil dipengaruhi oleh informasi pemformatan objek saat ini NumberFormatInfo . Tabel berikut mencantumkan NumberFormatInfo properti objek yang dapat mengontrol pemformatan string yang dihasilkan.
Properti NumberFormatInfo | Deskripsi |
---|---|
NegativeSign | Menentukan string yang menunjukkan bahwa angka negatif. |
NumberDecimalSeparator | Menentukan string yang memisahkan digit integral dari digit desimal. |
PositiveSign | Menentukan string yang menunjukkan bahwa eksponen positif. |
Contoh berikut memformat nilai floating-point bermakna dengan penentu format umum:
double number;
number = 12345.6789;
Console::WriteLine(number.ToString("G", CultureInfo::InvariantCulture));
// Displays 12345.6789
Console::WriteLine(number.ToString("G",
CultureInfo::CreateSpecificCulture("fr-FR")));
// Displays 12345,6789
Console::WriteLine(number.ToString("G7", CultureInfo::InvariantCulture));
// Displays 12345.68
number = .0000023;
Console::WriteLine(number.ToString("G", CultureInfo::InvariantCulture));
// Displays 2.3E-06
Console::WriteLine(number.ToString("G",
CultureInfo::CreateSpecificCulture("fr-FR")));
// Displays 2,3E-06
number = .0023;
Console::WriteLine(number.ToString("G", CultureInfo::InvariantCulture));
// Displays 0.0023
number = 1234;
Console::WriteLine(number.ToString("G2", CultureInfo::InvariantCulture));
// Displays 1.2E+03
number = Math::PI;
Console::WriteLine(number.ToString("G5", CultureInfo::InvariantCulture));
// Displays 3.1416
double number;
number = 12345.6789;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 12345.6789
Console.WriteLine(number.ToString("G",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 12345,6789
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture));
// Displays 12345.68
number = .0000023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 2.3E-06
Console.WriteLine(number.ToString("G",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 2,3E-06
number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023
number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03
number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416
Dim number As Double
number = 12345.6789
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 12345.6789
Console.WriteLine(number.ToString("G", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 12345,6789
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture))
' Displays 12345.68
number = .0000023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 2.3E-06
Console.WriteLine(number.ToString("G", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 2,3E-06
number = .0023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 0.0023
number = 1234
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture))
' Displays 1.2E+03
number = Math.Pi
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture))
' Displays 3.1416
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 properti NumberFormatInfo.NumberDecimalDigits saat ini.
String hasil dipengaruhi oleh informasi pemformatan objek saat ini NumberFormatInfo . Tabel berikut mencantumkan NumberFormatInfo properti objek yang dapat mengontrol pemformatan string yang dihasilkan.
Properti NumberFormatInfo | Deskripsi |
---|---|
NegativeSign | Menentukan string yang menunjukkan bahwa angka negatif. |
NumberNegativePattern | Menentukan format nilai negatif, dan menentukan apakah tanda negatif diwakili oleh tanda kurung atau properti NegativeSign. |
NumberGroupSizes | Menentukan jumlah digit integral yang muncul di antara pemisah grup. |
NumberGroupSeparator | Menentukan string yang memisahkan grup angka integral. |
NumberDecimalSeparator | Menentukan string yang memisahkan digit integral dan desimal. |
NumberDecimalDigits | Menentukan jumlah default digit desimal. Nilai ini dapat ditimpa dengan menggunakan penentu presisi. |
Contoh berikut memformat nilai floating-point bermakna dengan penentu format angka:
double dblValue = -12445.6789;
Console::WriteLine(dblValue.ToString("N", CultureInfo::InvariantCulture));
// Displays -12,445.68
Console::WriteLine(dblValue.ToString("N1",
CultureInfo::CreateSpecificCulture("sv-SE")));
// Displays -12 445,7
int intValue = 123456789;
Console::WriteLine(intValue.ToString("N1", CultureInfo::InvariantCulture));
// Displays 123,456,789.0
double dblValue = -12445.6789;
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture));
// Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1",
CultureInfo.CreateSpecificCulture("sv-SE")));
// Displays -12 445,7
int intValue = 123456789;
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture));
// Displays 123,456,789.0
Dim dblValue As Double = -12445.6789
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture))
' Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1", _
CultureInfo.CreateSpecificCulture("sv-SE")))
' Displays -12 445,7
Dim intValue As Integer = 123456789
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture))
' Displays 123,456,789.0
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 properti PercentDecimalDigits saat ini digunakan.
Tabel berikut ini mencantumkan NumberFormatInfo properti yang mengontrol pemformatan string yang dikembalikan.
Properti NumberFormatInfo | Deskripsi |
---|---|
PercentPositivePattern | Menentukan penempatan simbol persen untuk nilai positif. |
PercentNegativePattern | Menentukan penempatan simbol persen dan simbol negatif untuk nilai negatif. |
NegativeSign | Menentukan string yang menunjukkan bahwa angka negatif. |
PercentSymbol | Mendefinisikan simbol persen. |
PercentDecimalDigits | Menentukan jumlah default digit desimal dalam nilai persentase. Nilai ini dapat ditimpa dengan menggunakan penentu presisi. |
PercentDecimalSeparator | Menentukan string yang memisahkan digit integral dan desimal. |
PercentGroupSeparator | Menentukan string yang memisahkan grup angka integral. |
PercentGroupSizes | Menentukan jumlah digit bilangan bulat yang muncul dalam grup. |
Contoh berikut memformat nilai floating-point dengan penentu format persen:
double number = .2468013;
Console::WriteLine(number.ToString("P", CultureInfo::InvariantCulture));
// Displays 24.68 %
Console::WriteLine(number.ToString("P",
CultureInfo::CreateSpecificCulture("hr-HR")));
// Displays 24,68%
Console::WriteLine(number.ToString("P1", CultureInfo::InvariantCulture));
// Displays 24.7 %
double number = .2468013;
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture));
// Displays 24.68 %
Console.WriteLine(number.ToString("P",
CultureInfo.CreateSpecificCulture("hr-HR")));
// Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture));
// Displays 24.7 %
Dim number As Double = .2468013
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture))
' Displays 24.68 %
Console.WriteLine(number.ToString("P", _
CultureInfo.CreateSpecificCulture("hr-HR")))
' Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture))
' Displays 24.7 %
Penentu format dua arah (R)
Penentu format dua arah ("R") mencoba memastikan bahwa nilai numerik yang dikonversi ke string diurai kembali ke nilai numerik yang sama. Format ini hanya didukung untuk jenis Half, Single, Double, dan BigInteger.
Dalam versi .NET Framework dan di .NET Core yang lebih lama dari 3.0, penentu format "R" gagal berhasil melakukan format dua arah Double dalam beberapa kasus. Untuk nilai Double dan Single , penentu format "R" menawarkan performa yang relatif buruk. Sebagai gantinya, kami menyarankan Anda menggunakan penentu format "G17" untuk nilai Double dan penentu format "G9" untuk berhasil melakukan format dua arah pada nilai Single.
Saat nilai BigInteger diformat menggunakan penentu ini, representasi string-nya berisi semua digit signifikan dalam nilai BigInteger.
Meskipun Anda dapat menyertakan penentu presisi, ini akan diabaikan. Format dua arah diberikan prioritas daripada presisi saat menggunakan penentu ini. String hasil dipengaruhi oleh informasi pemformatan objek saat ini NumberFormatInfo . Tabel berikut mencantumkan NumberFormatInfo properti objek yang dapat mengontrol pemformatan string yang dihasilkan.
Properti NumberFormatInfo | Deskripsi |
---|---|
NegativeSign | Menentukan string yang menunjukkan bahwa angka negatif. |
NumberDecimalSeparator | Menentukan string yang memisahkan digit integral dari digit desimal. |
PositiveSign | Menentukan string yang menunjukkan bahwa eksponen positif. |
Contoh berikut memformat nilai BigInteger dengan penentu format dua arah
#using <System.Numerics.dll>
using namespace System;
using namespace System::Numerics;
void main()
{
BigInteger value = BigInteger::Pow(Int64::MaxValue, 2);
Console::WriteLine(value.ToString("R"));
}
// The example displays the following output:
// 85070591730234615847396907784232501249
using System;
using System.Numerics;
public class Example
{
public static void Main()
{
var value = BigInteger.Pow(Int64.MaxValue, 2);
Console.WriteLine(value.ToString("R"));
}
}
// The example displays the following output:
// 85070591730234615847396907784232501249
Imports System.Numerics
Module Example
Public Sub Main()
Dim value = BigInteger.Pow(Int64.MaxValue, 2)
Console.WriteLine(value.ToString("R"))
End Sub
End Module
' The example displays the following output:
' 85070591730234615847396907784232501249
Penting
Dalam beberapa kasus, nilai Double yang diformat dengan string format numerik standar "R" tidak berhasil melakukan format dua arah jika dikompilasi menggunakan /platform:x64
atau /platform:anycpu
beralih dan berjalan pada sistem 64-bit. Lihat paragraf berikut untuk informasi selengkapnya.
Untuk mengatasi masalah Double nilai yang diformat dengan string format numerik standar "R" tidak berhasil melakukan round-tripping jika dikompilasi menggunakan /platform:x64
sakelar atau /platform:anycpu
dan berjalan pada sistem 64-bit, Anda dapat memformat Double nilai dengan menggunakan string format numerik standar "G17". Contoh berikut menggunakan string format "R" dengan nilai Double yang tidak berhasil melakukan format dua arah, dan juga menggunakan string format "G17" untuk berhasil melakukan format dua arah pada nilai asli:
Console.WriteLine("Attempting to round-trip a Double with 'R':");
double initialValue = 0.6822871999174;
string valueString = initialValue.ToString("R",
CultureInfo.InvariantCulture);
double roundTripped = double.Parse(valueString,
CultureInfo.InvariantCulture);
Console.WriteLine("{0:R} = {1:R}: {2}\n",
initialValue, roundTripped, initialValue.Equals(roundTripped));
Console.WriteLine("Attempting to round-trip a Double with 'G17':");
string valueString17 = initialValue.ToString("G17",
CultureInfo.InvariantCulture);
double roundTripped17 = double.Parse(valueString17,
CultureInfo.InvariantCulture);
Console.WriteLine("{0:R} = {1:R}: {2}\n",
initialValue, roundTripped17, initialValue.Equals(roundTripped17));
// If compiled to an application that targets anycpu or x64 and run on an x64 system,
// the example displays the following output:
// Attempting to round-trip a Double with 'R':
// 0.6822871999174 = 0.68228719991740006: False
//
// Attempting to round-trip a Double with 'G17':
// 0.6822871999174 = 0.6822871999174: True
Imports System.Globalization
Module Example
Public Sub Main()
Console.WriteLine("Attempting to round-trip a Double with 'R':")
Dim initialValue As Double = 0.6822871999174
Dim valueString As String = initialValue.ToString("R",
CultureInfo.InvariantCulture)
Dim roundTripped As Double = Double.Parse(valueString,
CultureInfo.InvariantCulture)
Console.WriteLine("{0:R} = {1:R}: {2}",
initialValue, roundTripped, initialValue.Equals(roundTripped))
Console.WriteLine()
Console.WriteLine("Attempting to round-trip a Double with 'G17':")
Dim valueString17 As String = initialValue.ToString("G17",
CultureInfo.InvariantCulture)
Dim roundTripped17 As Double = double.Parse(valueString17,
CultureInfo.InvariantCulture)
Console.WriteLine("{0:R} = {1:R}: {2}",
initialValue, roundTripped17, initialValue.Equals(roundTripped17))
End Sub
End Module
' If compiled to an application that targets anycpu or x64 and run on an x64 system,
' the example displays the following output:
' Attempting to round-trip a Double with 'R':
' 0.6822871999174 = 0.68228719991740006: False
'
' Attempting to round-trip a Double with 'G17':
' 0.6822871999174 = 0.6822871999174: True
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 objek NumberFormatInfo saat ini.
Contoh berikut memformat nilai Int32 dengan penentu format heksadesimal.
int value;
value = 0x2045e;
Console::WriteLine(value.ToString("x"));
// Displays 2045e
Console::WriteLine(value.ToString("X"));
// Displays 2045E
Console::WriteLine(value.ToString("X8"));
// Displays 0002045E
value = 123456789;
Console::WriteLine(value.ToString("X"));
// Displays 75BCD15
Console::WriteLine(value.ToString("X2"));
// Displays 75BCD15
int value;
value = 0x2045e;
Console.WriteLine(value.ToString("x"));
// Displays 2045e
Console.WriteLine(value.ToString("X"));
// Displays 2045E
Console.WriteLine(value.ToString("X8"));
// Displays 0002045E
value = 123456789;
Console.WriteLine(value.ToString("X"));
// Displays 75BCD15
Console.WriteLine(value.ToString("X2"));
// Displays 75BCD15
Dim value As Integer
value = &h2045e
Console.WriteLine(value.ToString("x"))
' Displays 2045e
Console.WriteLine(value.ToString("X"))
' Displays 2045E
Console.WriteLine(value.ToString("X8"))
' Displays 0002045E
value = 123456789
Console.WriteLine(value.ToString("X"))
' Displays 75BCD15
Console.WriteLine(value.ToString("X2"))
' Displays 75BCD15
Catatan
Bagian ini berisi informasi tambahan tentang menggunakan string format numerik standar.
Pengaturan Panel Kontrol
Pengaturan dalam item Opsi Regional dan Bahasa dalam Panel Kontrol memengaruhi string hasil yang dihasilkan oleh operasi pemformatan. Pengaturan tersebut digunakan untuk menginisialisasi objek NumberFormatInfo yang terkait dengan budaya saat ini, yang menyediakan nilai yang digunakan untuk mengatur pemformatan. Komputer yang menggunakan pengaturan yang berbeda menghasilkan string hasil yang berbeda.
Selain itu, jika konstruktor CultureInfo(String) digunakan untuk membuat instans objek CultureInfo baru yang mewakili budaya yang sama dengan budaya sistem saat ini, penyesuaian apa pun yang dibuat oleh item Opsi Wilayah dan Bahasa di Panel Kontrol akan diterapkan ke objek CultureInfo baru. Anda dapat menggunakan konstruktor CultureInfo(String, Boolean) untuk membuat objek CultureInfo yang tidak mencerminkan kustomisasi sistem.
Properti NumberFormatInfo
Pemformatan dipengaruhi oleh properti objek NumberFormatInfo saat ini, yang disediakan secara implisit oleh budaya saat ini atau secara eksplisit oleh parameter IFormatProvider dari metode yang memanggil pemformatan. Tentukan objek NumberFormatInfo atau CultureInfo untuk parameter tersebut.
Catatan
Untuk informasi tentang menyesuaikan pola atau string yang digunakan dalam memformat nilai numerik, lihat topik kelas NumberFormatInfo.
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, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, dan BigInteger. Jenis angka floating-point adalah Decimal, Half, Single, dan Double.
Tak terhingga floating point dan NaN
Terlepas dari format string, jika nilai jenis floating-point Half, Single, atau Double adalah tak terhingga positif, tak terhingga negatif, atau bukan angka (NaN), string yang diformat adalah nilai dari masing-masing properti PositiveInfinitySymbol, NegativeInfinitySymbol, atau NaNSymbol yang ditentukan oleh objek NumberFormatInfo yang berlaku saat ini.
Contoh kode
Contoh berikut memformat nilai numerik integral dan floating-point menggunakan budaya en-US dan semua penentu format numerik standar. Contoh ini menggunakan dua tipe numerik tertentu (Double dan Int32), tetapi akan menghasilkan hasil yang serupa untuk tipe dasar numerik lainnya (Byte, SByte, Int16, Int32, Int64 , UInt16, UInt32, UInt64, BigInteger, Decimal, Half, dan Single).
// Display string representations of numbers for en-us culture
CultureInfo ci = new CultureInfo("en-us");
// Output floating point values
double floating = 10761.937554;
Console.WriteLine("C: {0}",
floating.ToString("C", ci)); // Displays "C: $10,761.94"
Console.WriteLine("E: {0}",
floating.ToString("E03", ci)); // Displays "E: 1.076E+004"
Console.WriteLine("F: {0}",
floating.ToString("F04", ci)); // Displays "F: 10761.9376"
Console.WriteLine("G: {0}",
floating.ToString("G", ci)); // Displays "G: 10761.937554"
Console.WriteLine("N: {0}",
floating.ToString("N03", ci)); // Displays "N: 10,761.938"
Console.WriteLine("P: {0}",
(floating/10000).ToString("P02", ci)); // Displays "P: 107.62 %"
Console.WriteLine("R: {0}",
floating.ToString("R", ci)); // Displays "R: 10761.937554"
Console.WriteLine();
// Output integral values
int integral = 8395;
Console.WriteLine("C: {0}",
integral.ToString("C", ci)); // Displays "C: $8,395.00"
Console.WriteLine("D: {0}",
integral.ToString("D6", ci)); // Displays "D: 008395"
Console.WriteLine("E: {0}",
integral.ToString("E03", ci)); // Displays "E: 8.395E+003"
Console.WriteLine("F: {0}",
integral.ToString("F01", ci)); // Displays "F: 8395.0"
Console.WriteLine("G: {0}",
integral.ToString("G", ci)); // Displays "G: 8395"
Console.WriteLine("N: {0}",
integral.ToString("N01", ci)); // Displays "N: 8,395.0"
Console.WriteLine("P: {0}",
(integral/10000.0).ToString("P02", ci)); // Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}",
integral.ToString("X", ci)); // Displays "X: 0x20CB"
Console.WriteLine();
Option Strict On
Imports System.Globalization
Imports System.Threading
Module NumericFormats
Public Sub Main()
' Display string representations of numbers for en-us culture
Dim ci As New CultureInfo("en-us")
' Output floating point values
Dim floating As Double = 10761.937554
Console.WriteLine("C: {0}", _
floating.ToString("C", ci)) ' Displays "C: $10,761.94"
Console.WriteLine("E: {0}", _
floating.ToString("E03", ci)) ' Displays "E: 1.076E+004"
Console.WriteLine("F: {0}", _
floating.ToString("F04", ci)) ' Displays "F: 10761.9376"
Console.WriteLine("G: {0}", _
floating.ToString("G", ci)) ' Displays "G: 10761.937554"
Console.WriteLine("N: {0}", _
floating.ToString("N03", ci)) ' Displays "N: 10,761.938"
Console.WriteLine("P: {0}", _
(floating / 10000).ToString("P02", ci)) ' Displays "P: 107.62 %"
Console.WriteLine("R: {0}", _
floating.ToString("R", ci)) ' Displays "R: 10761.937554"
Console.WriteLine()
' Output integral values
Dim integral As Integer = 8395
Console.WriteLine("C: {0}", _
integral.ToString("C", ci)) ' Displays "C: $8,395.00"
Console.WriteLine("D: {0}", _
integral.ToString("D6")) ' Displays "D: 008395"
Console.WriteLine("E: {0}", _
integral.ToString("E03", ci)) ' Displays "E: 8.395E+003"
Console.WriteLine("F: {0}", _
integral.ToString("F01", ci)) ' Displays "F: 8395.0"
Console.WriteLine("G: {0}", _
integral.ToString("G", ci)) ' Displays "G: 8395"
Console.WriteLine("N: {0}", _
integral.ToString("N01", ci)) ' Displays "N: 8,395.0"
Console.WriteLine("P: {0}", _
(integral / 10000).ToString("P02", ci)) ' Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}", _
integral.ToString("X", ci)) ' Displays "X: 0x20CB"
Console.WriteLine()
End Sub
End Module