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:

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 metode ToString yang memiliki parameter format. 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

Lihat juga