Angka menyimpan nilai yang sama di mana pun, tetapi teksnya berbeda antar budaya: culture en-US menulis 1,234,567.89 sedangkan id-ID membalik pemisahnya menjadi 1.234.567,89. Method ToString menerima penentu format standar seperti N (number dengan pemisah) dan C (currency), dan keduanya wajib dipasangkan dengan argumen culture eksplisit bila hasilnya akan dibaca mesin atau disimpan.
Format dan Parse Dua Arah #
decimal nilai = 1234567.891m;
Console.WriteLine(nilai.ToString("N2", CultureInfo.InvariantCulture));
Console.WriteLine(nilai.ToString("N2", CultureInfo.GetCultureInfo("id-ID")));
decimal dariInvariant = decimal.Parse("1234567.891", CultureInfo.InvariantCulture);
Console.WriteLine(dariInvariant.ToString(CultureInfo.InvariantCulture));
decimal dariId = decimal.Parse("1.234,89", CultureInfo.GetCultureInfo("id-ID"));
Console.WriteLine(dariId.ToString(CultureInfo.InvariantCulture));Output yang Dihasilkan:
1,234,567.89
1.234.567,89
1234567.891
1234.89Mari kita bedah baris demi baris:
- Baris 3 (
"N2" ... Invariant): penentuN2menampilkan dua angka desimal dengan pemisah ribuan koma dan pemisah desimal titik sesuai culture invariant. - Baris 4 (
"N2" ... id-ID): nilaidecimalyang sama ditulis dengan pemisah terbalik, khas format angka Indonesia. - Baris 6-7 (
decimal.Parse ...): teks gaya invariant diurai dengan culture yang sama; methodParsemengembalikan1234567.891dan mencetaknya kembali tanpa penentu format. - Baris 9-10 (
Parse("1.234,89" ...)): dengan culture id-ID, titik dibaca sebagai pemisah ribuan dan koma sebagai desimal, sehingga hasilnya bernilai1234.89.
Penentu standar lain melengkapi kebutuhan tampilan: F2 memaksa dua desimal tanpa pemisah ribuan, P menampilkan persentase, dan E memakai notasi ilmiah. Semua penentu tersebut menerima argumen culture dengan pola yang sama seperti contoh N2, sehingga kebiasaan mengirim culture eksplisit berlaku seragam untuk seluruh penentu format angka.