th1*_*ey3 4 c# string formatting string-formatting
我试图将数字格式化173910234.23为类似的东西17,39,10,234.23.这里只有第一个千位分隔符在三位数之后.但之后所有分隔符(,)都在两位数之后.我试过以下 -
double d = 173910234.23;
Console.WriteLine(string.Format("{0:#,##,##,###.00}", d));
Run Code Online (Sandbox Code Playgroud)
但它每三位数后输出逗号, 173,910,234.23
如何17,39,10,234.23使用格式string.Format?
数字组由NumberGroupSizes属性定义NumberFormatInfo.因此,相应地修改它,只使用N格式说明符.
double d = 173910234.23;
var culture = new CultureInfo("en-us", true)
{
NumberFormat =
{
NumberGroupSizes = new int[] { 3, 2 }
}
};
Console.WriteLine(d.ToString("N", culture));
Run Code Online (Sandbox Code Playgroud)
这输出
17,39,10,234.23
Run Code Online (Sandbox Code Playgroud)
感谢@Rawling和@Hamlet,了解这一点.现在OP获得了预期的输出,我也学到了一些东西......