我试图将数字173910234.23
格式化为17,39,10,234.23
。这里只有第一个千位分隔符在三位数之后。但之后所有分隔符(,
)都在两位数之后。我尝试了以下内容 -
double d = 173910234.23;
Console.WriteLine(string.Format("{0:#,##,##,###.00}", d));
但它会在每三位数173,910,234.23
如何使用17,39,10,234.23
string.Format
答案 0 :(得分:8)
数字组由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));
此输出
17,39,10,234.23
<小时/>
感谢@Rawling和@Hamlet,对此有所了解。现在OP获得预期的输出,我也学到了一些东西..
答案 1 :(得分:0)
string output = null;
string num = Number.ToString();
for(int i = 0; i < num.Length; ++i)
{
switch(i)
case 2:
case 4:
case 6:
output += ",".ToString() + num[i].ToString();
break;
default:
output += num[i].ToString();
break:
}
如果您想使用不同的数字,请将数字替换为您之前要插入逗号的数字的位置(请记住字符串的第一个字符的位置为 0 )