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

P.K*_*P.K 2 .net c# silverlight string-formatting

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

[DisplayFormat(DataFormatString = "{0:N2}")] 
Run Code Online (Sandbox Code Playgroud)

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

[DisplayFormat(DataFormatString = "{0:#,###.00##}")]
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ell 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"
Run Code Online (Sandbox Code Playgroud)