Mengapa 0.ToString("#.##")
mengembalikan string kosong? Bukankah seharusnya 0.00
atau setidaknya 0 ?
114
#
dalam format string menunjukkan bahwa nilainya opsional. Jika Anda ingin mendapatkan hasilnya, 0.00
Anda memerlukan yang berikut ini:
0.ToString("0.00");
Lihat di sini untuk format numerik kustom yang dapat diteruskan ke metode ini.
Karena dalam format string,
#
digunakan untuk menandai placeholder karakter opsional; itu hanya digunakan jika diperlukan untuk mewakili nomor tersebut.Jika Anda melakukan ini sebagai gantinya:
0.ToString("0.##");
Anda mendapatkan:0
Menariknya, jika Anda melakukan ini:
0.ToString("#.0#");
Anda mendapatkan:.0
Jika Anda menginginkan ketiga digit tersebut:
0.ToString("0.00");
menghasilkan:0.00
Dari komentar hingga jawaban ini, argumen Anda sepertinya,
Tanggapannya sederhana: Anda memiliki pilihan bagaimana Anda ingin menampilkannya. Itulah gunanya string format kustom. Anda baru saja memilih string format yang salah untuk kebutuhan Anda .
sumber
Menurut dokumentasi tentang Digit Placeholder .
Jika Anda ingin angka nol ditampilkan, gunakan Zero PlaceHolder
sumber
Coba ini
0.ToString("#,##; #,##;0")
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings#SectionSeparator
Bagian pertama berlaku untuk nilai positif, bagian kedua berlaku untuk nilai negatif, dan bagian ketiga berlaku untuk nol.
sumber
Gunakan seperti ini:
0
setelah#
akan memastikan untuk mengatur nilai output ke 0 jika nilainya 0 selain itu akan menampilkan nilai. Jadi0.0.ToString("#0.##")=0.00
dan10.ToString("#.##")=10.00
sumber