C# 在字符串中添加十进制逗号

C# 在字符串中添加十进制逗号,c#,.net,string,decimal,C#,.net,String,Decimal,我想在十进制到字符串的转换中添加一个逗号,如 为了 它应该给 string str = 1,00,00,00,000.00 以下是一个例子: 你可以这样做 String.Format("{0:#,###0}", 0); 您可以通过使用正确的方法来实现这一点: 顺便说一下:以下cultureinfo生成正确的输出: hi,bn,pa,gu,or,ta,te,kn,ml,as,mr,sa,kok,si,ne, hi-IN,bn-IN,pa-IN,gu-IN,or-IN,ta-IN,te-IN,

我想在十进制到字符串的转换中添加一个逗号,如

为了

它应该给

string str = 1,00,00,00,000.00
以下是一个例子:

你可以这样做

String.Format("{0:#,###0}", 0);

您可以通过使用正确的方法来实现这一点:

顺便说一下:以下
cultureinfo
生成正确的输出:

hi,bn,pa,gu,or,ta,te,kn,ml,as,mr,sa,kok,si,ne,
hi-IN,bn-IN,pa-IN,gu-IN,or-IN,ta-IN,te-IN,kn-IN,
ml-IN,as-IN,mr-IN,sa-IN,kok-IN,si-LK,ne-NP,bn-BD,en-IN

当然,您可以使用一些预定义的区域性,但我想介绍一下这种方法,使用
numbergroupsize
指定您想要的格式:

CultureInfo ci = new CultureInfo("en-US");
ci.NumberFormat.NumberGroupSizes = new int[] { 3, 2 };
Thread.CurrentThread.CurrentCulture = ci;
Console.WriteLine("{0:#,#.00}", 12345678.12);
//output 
1,23,45,678.12
ci.NumberFormat.NumberGroupSizes = new int[] {4, 2};
//output
12,34,5678.12
//....

真的
1,00,00,00000.00
?或者你的意思是
100000000.00
?在这种情况下,formatstring将是
#,#.00
哪个区域性使用此格式可能存在重复?@StephanBauer-Bauer我的意思是
1,00,00,0000000
此格式用于India@RohitChaudhari很好,我不知道:-)看到什么是
值了吗?写
-value
比写
value*-1
好吗?这正是OP想要的<代码>+1
@Stephan Bauer这是一项很好的研究,但我想实现King的答案很好,我不知道<代码>+1
decimal input = 1000000000.0000m;
CultureInfo ci = new CultureInfo("hi-IN");
string output = string.Format(ci,"{0:#,#.00}",input);
hi,bn,pa,gu,or,ta,te,kn,ml,as,mr,sa,kok,si,ne,
hi-IN,bn-IN,pa-IN,gu-IN,or-IN,ta-IN,te-IN,kn-IN,
ml-IN,as-IN,mr-IN,sa-IN,kok-IN,si-LK,ne-NP,bn-BD,en-IN
CultureInfo ci = new CultureInfo("en-US");
ci.NumberFormat.NumberGroupSizes = new int[] { 3, 2 };
Thread.CurrentThread.CurrentCulture = ci;
Console.WriteLine("{0:#,#.00}", 12345678.12);
//output 
1,23,45,678.12
ci.NumberFormat.NumberGroupSizes = new int[] {4, 2};
//output
12,34,5678.12
//....