String Format Angka

Pada bagian sebelumnya kita sudah mempelajari placeholder string beserta dua cara penggunaannya. Selain dua metode ini, C# juga mendukung aturan format yang lebih kompleks.

Sintaks Dasar Placeholder Format

{indeks,penyelarasan:format}
1. index (indeks)

Indeks / variabel interpolasi, wajib diisi

Placeholder angka tradisional: Console.WriteLine(“{0}”, 123); artinya nilai 123 akan dimasukkan ke dalam bagian {0}

Interpolasi string dengan sintaks $"": tulis nama variabel secara langsung tanpa indeks angka, contoh Console.WriteLine($”Tom is {age} years old”)

Contoh kode

int money = 1000;
Console.WriteLine("Nilai asli: {0}", money);
Console.WriteLine("Format mata uang: {0:C}", money);
Console.WriteLine("Mata uang rata kanan lebar 10 karakter: |{0,10:C}|", money);Code language: JavaScript (javascript)
Nilai asli: 1000
Format mata uang: $1,000.00
Mata uang rata kanan lebar 10 karakter: | $1,000.00|

Cara penulisan dengan interpolasi

int money = 500;
Console.WriteLine($"Nilai asli: {money}");
Console.WriteLine($"Format mata uang: {money:C}");
Console.WriteLine($"Mata uang rata kanan lebar 10 karakter: |{money,10:C}|");Code language: JavaScript (javascript)
2. alignment (penyelarasan)

Spesifikasi penyelarasan, opsional, dipisahkan dengan tanda koma ,

Fungsi: mengatur lebar minimal karakter output dan posisi rata kiri/kanan

Contoh: Console.WriteLine(“{0,10}”, 123); // menempati 10 slot karakter, angka rata kanan

Dari hasil output terlihat ada banyak spasi di sebelah kiri angka 123. Angka 10 menandakan total lebar 10 karakter, sehingga ada 7 spasi yang ditambahkan sebelum angka 123 untuk membuatnya rata kanan.

Angka positif: rata kanan, sisa lebar diisi spasi di sebelah kiri Contoh: {0,10} → lebar 10 karakter, angka rata kanan

Angka negatif: rata kiri, sisa lebar diisi spasi di sebelah kanan Contoh: {0,-10} → lebar 10 karakter, angka rata kiri

Mari ubah kode seperti berikut

Console.WriteLine("{0,-10}", 123);  // pakai lebar 10 karakter, angka negatif berarti rata kiriCode language: JavaScript (javascript)

Spasi sulit dilihat secara langsung, jadi kita tambahkan garis vertikal sebagai pembatas

Console.WriteLine("|{0,-10}|", 123);
Console.WriteLine("|{0,10}|", 456);Code language: JavaScript (javascript)

Dengan pembatas garis vertikal aturannya jadi jelas: angka 10 adalah lebar tetap 10 karakter, nilai negatif untuk rata kiri, positif untuk rata kanan, bagian yang kosong akan diisi spasi.

Kode yang setara dengan interpolasi string adalah sebagai berikut

int one = 123;
int two = 456;
Console.WriteLine($"|{one,-10}|");
Console.WriteLine($"|{two,-10}|");Code language: JavaScript (javascript)
3. format (spesifikasi format)

Bagian format, opsional, dipisahkan dengan tanda titik dua :

Berfungsi mengatur tampilan angka: mata uang, desimal tetap, notasi ilmiah, heksadesimal dan lainnya

Struktur bagian format :Axx

  • : harus menempel langsung pada placeholder tanpa spasi
  • A: spesifikasi huruf tunggal (terdapat 9 format standar bawaan, beberapa peka huruf besar/kecil)
  • xx: spesifikasi presisi (opsional, 1–2 digit angka, maknanya berbeda tiap format huruf)
// F4: format desimal tetap, simpan 4 angka di belakang koma
Console.WriteLine("{0:F4}", 12.345678);

// Penulisan setara pakai interpolasi
Console.WriteLine($"{12.345678:F4}");Code language: JavaScript (javascript)

Mari lihat contoh tambahan

double myDouble = 12.345678;
Console.WriteLine("{0,-10:G} -- Format Umum", myDouble);      // 12.345678 -- Format Umum
Console.WriteLine("{0,-10} -- Bawaan", myDouble);         // 12.345678 -- Bawaan
Console.WriteLine("{0,-10:F4} -- Desimal Tetap", myDouble);   // 12.3457  -- Desimal Tetap
Console.WriteLine("{0,-10:C} -- Mata Uang", myDouble);     // $12.35    -- Mata Uang
Console.WriteLine("{0,-10:E3} -- Notasi Ilmiah", myDouble);//1.235E+001 -- Notasi Ilmiah
Console.WriteLine("{0,-10:x} -- Bilangan Bulat Heksadesimal", 1194719);   // 123adf    -- Bilangan Bulat HeksadesimalCode language: JavaScript (javascript)

Tabel 9 Spesifikasi Format Angka Standar

KodeNamaKegunaanMakna PresisiContoh Output
C/cCurrency Mata UangTampilkan simbol mata uang lokalJumlah angka desimal{0:C} 12.5 → $12.50
D/dDecimal Bilangan Bulat DesimalHanya tipe int, tambah nol di depan jika kurang digitDigit minimal yang ditampilkan{0:D4} 12 → 0012
F/fFixed-point Desimal TetapJumlah desimal tetapJumlah digit desimal yang disimpan{0:F4} 12.345678 →12.3457
G/gGeneral Format UmumOtomatis pakai desimal tetap atau notasi ilmiah, format bawaanJumlah digit signifikan{0:G4} 12.345678 →12.35
X/xHexadecimal Heksadesimal (beda huruf besar/kecil)Tampilkan heksadesimal, X huruf besar, x huruf kecilDigit minimal yang ditampilkan{0:x} 180026 → 2bf3a
N/nNumber Bilangan dengan Pemisah RibuanTambah pemisah tiap tiga digitJumlah angka desimal{0:N2} 12345678.54321 →12,345,678.54
P/pPercent PersenNilai dikali 100 lalu tambah simbol %Jumlah angka desimal{0:P2} 0.1221897 →12.22 %
R/rRound-trip Format Pulang PergiBisa dikonversi kembali ke angka asli tanpa hilang presisiParameter presisi diabaikan{0:R} 1234.21897 →1234.21897
E/eScientific Notasi Ilmiah (beda huruf besar/kecil)Tampilan eksponensial, E besar, e kecilDigit desimal pada mantisa{0:e4}12.3456789 →1.2346e+001

String Format Angka

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *