0.ToString (“#. ##”) neden 0.00 veya en az 0 yerine boş bir dize döndürüyor?


114

Neden 0.ToString("#.##")boş bir dize döndürüyor? Olmamalı mı 0.00yoksa en az 0 mı?

Yanıtlar:


185

#dize biçiminde, değerin isteğe bağlı olduğunu belirtin. Çıktıyı almak 0.00istiyorsanı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 .


3
Bir şey hala kafamı karıştırdı, sonucun neden 0 olmadığıdır. Çünkü 0 isteğe bağlı değildir. Boşluk mantıklı mı?
user960567

135

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 .


20

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.



-1

Bunu şu şekilde kullanın:

0.ToString("#0.##")

0sonra #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.00ve10.ToString("#.##")=10.00

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.