Neden 0.ToString("#.##")
boş bir dize döndürüyor? Olmamalı mı 0.00
yoksa en az 0 mı?
Neden 0.ToString("#.##")
boş bir dize döndürüyor? Olmamalı mı 0.00
yoksa en az 0 mı?
Yanıtlar:
#
dize biçiminde, değerin isteğe bağlı olduğunu belirtin. Çıktıyı almak 0.00
istiyorsanız, aşağıdakilere ihtiyacınız vardır:
0.ToString("0.00");
Bu yönteme aktarılabilecek özel sayısal biçimler için buraya bakın .
Bir biçim dizesinde, #
isteğe bağlı bir karakter yer tutucusunu belirtmek için kullanılır; yalnızca numarayı temsil etmesi gerektiğinde kullanılır .
Bunun yerine bunu 0.ToString("0.##");
yaparsanız:0
İlginç bir şekilde, bunu yaparsanız 0.ToString("#.0#");
:.0
Üç basamağın tümünü istiyorsanız: şunu 0.ToString("0.00");
üretir:0.00
Yorumlardan bu cevaba kadar, argümanınız şöyle görünüyor:
'0' göstermelidir, çünkü sayısal değer 0 ise neden birisi boş bir dize görmek ister ki?
Yanıtı basittir: Tercih sizin bunu gösterilmesini istediğiniz nasıl. Özel biçim dizeleri bunun içindir. İhtiyaçlarınız için yanlış biçim dizesini seçtiniz .
Rakam Yer Tutucusu ile ilgili belgelere göre .
Biçimlendirilen değer, biçim dizesinde "#" harfinin göründüğü konumda bir rakama sahipse, bu rakam sonuç dizesine kopyalanır. Aksi takdirde, sonuç dizesinde o konumda hiçbir şey depolanmaz. Bu belirteç, dizedeki tek basamak "0" olsa bile, önemli bir basamak değilse "0" karakterini asla görüntülemez. Görüntülenen sayıdaki önemli bir basamaksa '0' karakterini gösterecektir. "##" biçim dizesi, değerin ondalık basamaktan önceki en yakın basamağa yuvarlanmasına neden olur, burada sıfırdan uzağa yuvarlama her zaman kullanılır. Örneğin, 34.5'i "##" ile biçimlendirmek, 35 değeriyle sonuçlanır.
Sıfırın görüntülenmesini istiyorsanız, Sıfır Yer Tutucuyu kullanın
Biçimlendirilen değer, biçim dizesinde '0'ın göründüğü konumda bir rakama sahipse, bu rakam sonuç dizesine kopyalanır. En soldaki '0'ın ondalık noktadan önceki konumu ve ondalık noktadan sonraki en sağdaki' 0 ', sonuç dizesinde her zaman mevcut olan basamak aralığını belirler.
"00" belirticisi, değerin ondalık basamaktan önceki en yakın basamağa yuvarlanmasına neden olur, burada sıfırdan uzağa yuvarlama her zaman kullanılır. Örneğin, 34.5'i "00" ile biçimlendirmek 35 değeriyle sonuçlanır.
Bunu dene 0.ToString("#,##; #,##;0")
İlk bölüm pozitif değerler için geçerlidir, ikinci bölüm negatif değerler için geçerlidir ve üçüncü bölüm sıfırlar için geçerlidir.
Bunu şu şekilde kullanın:
0.ToString("#0.##")
0
sonra #
değer 0 ise çıkış değerinin 0 olarak ayarlanmasını sağlayacaktır, aksi takdirde değeri gösterecektir. Yani 0.0.ToString("#0.##")=0.00
ve10.ToString("#.##")=10.00