如何在格式字符串中使用区域设置无关的十进制和数字分隔符?

时间:2011-03-17 10:28:02

标签: c# .net silverlight string-formatting

我使用以下格式化列值(绑定到十进制类型的值?):

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

我现在想将其更改为以下格式:

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

但是,这不是语言环境独立的,因为我很难编码十进制和数字分隔符。基本上,我想显示一个带有适当的数字和小数分隔符的字符串。此外,我希望小数分隔符后最少两个零,最多4个零。 是否可以在编译时?

指定这样的字符串

1 个答案:

答案 0 :(得分:7)

  

但是,这不是语言环境独立的,因为我很难编码十进制和数字分隔符

不,你不是;格式说明符.,分别表示“小数分隔符”和“千位分隔符”,而不是文字逗号和句点。它应该正常工作。例如,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"