C# c中1000000格式的自定义数字组(千位分隔符)#

C# c中1000000格式的自定义数字组(千位分隔符)#,c#,C#,我的代码如下所示,我正在尝试获取数字上的自定义分组 示例:1000000应该是1000000 我已经尝试了很多搜索结果,允许千个分隔符和自定义分组,但每一个都会给出类似10,00000的结果 decimal value = decimal.Parse(txtamount.Text.Trim()); txtamount.Text = value.ToString("#,###0"); 在这段代码中,我也尝试了下面的代码 txtamount.Text = String.Format("{0:n0}

我的代码如下所示,我正在尝试获取数字上的自定义分组 示例:1000000应该是1000000

我已经尝试了很多搜索结果,允许千个分隔符和自定义分组,但每一个都会给出类似10,00000的结果

decimal value = decimal.Parse(txtamount.Text.Trim());
txtamount.Text = value.ToString("#,###0");
在这段代码中,我也尝试了下面的代码

txtamount.Text = String.Format("{0:n0}", value);
txtamount.Text = value.ToString("#,##0", new System.Globalization.CultureInfo("en-US"));
txtamount.Text = value.ToString("0,0.0",CultureInfo.InvariantCulture); //-->1,000,000.0
它不是一个普通的数字千位分隔符分组。
我正在尝试以1000000格式获取输出,因为这是一种自定义格式,所以您需要转义逗号

string.Format("{0:####\\,###}",value)

如果没有,似乎不可能,但可以在后面插入逗号。例如:

string value = "1234567.890"
string result = Regex.Replace(value, @"(\d+)(\d\d\d)", "$1,$2");  // result = "1234,567.890"

要仅使用一个分组分隔符,可以使用以下方法:

// create a writable copy of the culture of your choice
var ci = (CultureInfo)CultureInfo.GetCultureInfo("en-us").Clone();

// change the group sizes: the first one after 3 digits (counting backwards)
// NO second (third, ..) one!
ci.NumberFormat.NumberGroupSizes = new[]{3,0};

// and use it 
// the , in the format means "use a group separator", it does NOT specify a position
var millionString1 = 1_000_000.ToString("#,#", ci); // 1000,000
var millionString2 = 1_000_000.ToString("N0", ci); // also 1000,000
但请注意,1000万现在将变成1000万


请参阅。

可能重复的感谢您的参考我已经尝试过了,但它没有给出格式1000000的期望结果,所以您希望前千个数字使用千分隔符,而不是其余数字?这里的用例是什么?您希望如何格式化200万?1000万?似乎会导致
,小于1000的数字为10