2012-01-25 193 views

回答

170

#以字符串格式表示該值是可選的。如果你希望得到0.00您需要以下的輸出:

0.ToString("0.00"); 

here for the custom numeric formats可以傳遞給此方法。

+1

有一件事仍令我困惑,爲什麼結果不是0.因爲0不是可選的。是空的有道理嗎? – user960567

126

因爲在格式字符串中,#用於表示可選的字符佔位符;它僅在需要來表示數字時才被使用。

如果你這樣做,而不是:0.ToString("0.##");你:0

有趣的是,如果你這樣做:0.ToString("#.0#");你:.0

如果你希望所有的三個數字:0.ToString("0.00");生產:0.00


從評論到這個答覆,你的論點似乎是,

它應該顯示'0',因爲如果數字值爲0,爲什麼有人希望看到一個空字符串?

回覆很簡單:您有選擇您希望如何顯示它。這就是自定義格式字符串的用途。 您只需根據您的需求選擇不正確的格式字符串

20

根據有關Digit Placeholder的文檔。

如果被格式化的值在格式字符串中出現'#'的位置有一個數字,那麼該數字將被複制到結果字符串中。否則,在結果字符串中不存在該位置的 。即使「0」是字符串中的唯一數字,該說明符也不會顯示「0」字符(如果它不是有效數字)。如果 是顯示的數字中的有效數字,將顯示「0」字符。 「##」格式字符串會使值四捨五入到小數點後面的最接近的數字 ,此處始終使用從零開始的舍入。例如,用「##」格式化34.5將得到值35

如果你想零顯示使用零佔位符

f是格式化的價值有一個數字在格式字符串中出現'0'的位置,然後將該數字複製到結果字符串中。 小數點前最左邊的'0'和小數點後最右邊的'0'的位置決定了總是出現在結果字符串中的數字範圍。
「00」說明符會使值四捨五入到小數點前的最接近的數字,此處始終使用從零開始舍入。例如,使用「00」格式化 34.5將導致值35.

相關問題