2011-03-17 45 views
2

我使用以下格式化列值(綁定到十進制類型的值):如何在格式字符串中使用語言環境獨立的十進制和數字分隔符?

[DisplayFormat(DataFormatString = "{0:N2}")] 

我想現在它更改爲以下格式:

[DisplayFormat(DataFormatString = "{0:#,###.00##}")] 

但是,這不是區域獨立的,因爲我很難編碼小數和數字分隔符。基本上,我想顯示一個適當的數字和小數點分隔符的字符串。另外,我希望小數分隔符後的最小兩個零和最多4個零。 是否可以在編譯時在處指定這樣的字符串?

回答

6

但是,這不是語言環境無關,因爲我硬編碼decimal和numeric分隔

不,你都沒有;在格式說明符中,.,分別表示「小數點分隔符」和「千位分隔符」,而不是文字的逗號和句點。它應該正常工作。例如,fr-FR文化中的'#,###。00 ##'應該顯示爲「1 234,56」:

var culture = CultureInfo.GetCultureInfo("fr-fr"); 
decimal d = 1234.56M; 
string s = d.ToString("#,###.00##'", culture); // "1 234,56" 
相關問題