Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用逗号分隔符格式化数字字符串,用于印度编号系统_C#_.net - Fatal编程技术网

C# 使用逗号分隔符格式化数字字符串,用于印度编号系统

C# 使用逗号分隔符格式化数字字符串,用于印度编号系统,c#,.net,C#,.net,我在字符串中有一个数值 string strNum = "12345678.90"; 我想在String.format() 在中使用“{0:n0}”格式时 String.Format("{0:n0}", Convert.ToDouble(strNum)); 它给我的输出是“12345679” 我希望输出为“1,23,45678.90”。在千位之后,我想要逗号分隔符,每个分隔符后面有两个数字,分别表示10万、10亿等 如何实现这一点?对于这种典型的方式,我将编写一个专门的函数,将数字转换为您

我在
字符串中有一个数值

string strNum = "12345678.90";
我想在
String.format()

在中使用
“{0:n0}”
格式时

String.Format("{0:n0}", Convert.ToDouble(strNum)); 
它给我的输出是
“12345679”

我希望输出为
“1,23,45678.90”
。在千位之后,我想要逗号分隔符,每个分隔符后面有两个数字,分别表示10万、10亿等


如何实现这一点?

对于这种典型的方式,我将编写一个专门的函数,将数字转换为您建议的字符串

我甚至建议将该项目设置为一个类,将其值表示为浮动或不同的项目,如10亿美元、10亿美元等

然后创建一个ToString方法以您想要的方式输出它

示例(未测试):


我的最佳选择是使用String.Format和“#”如下:

String.Format(0:##,##,##,##,##,###.##)
“#”是一个数字占位符,如果数字不够大,则不会显示零(或任何其他内容)


有关更多详细信息,请参阅。

您似乎是根据印地语文化设置格式的。 因此,请设置区域性,或将区域性设置为
String.Format
,如

String.Format(CultureInfo.GetCultureInfo( "<yourculture>" ), "{0:n}", Convert.ToDouble(strNum)); 
String.Format(CultureInfo.GetCultureInfo(“”,{0:n}),Convert.ToDouble(strNum));

使用此代码,您可以将金额字符串更改为印度标准逗号分隔值;在“
中使用区域性
”和格式
“{0:#,0.00}”
这里
strNum
是我的字符串值金额

string.Format( System.Globalization.CultureInfo.CreateSpecificCulture("hi-IN"), "{0:#,0.00}", Convert.ToDouble(strNum)

但如果可能的话,我正在寻找一种直接的方法,否则我已经用函数进行了转换。你说的直接方法是什么意思?你对此的理想解决方案是什么?(不是挖苦人,真的很好奇你在追求什么)。直接方法,我的意思是使用正则表达式格式化它或任何内置字符串函数的组合…它给我的输出是“12,34,56,79”,但所需的输出是“1,23,45678.90”编辑。如果您使用正确的区域性,则不需要设置NumberGroupSizes。虽然此代码可能会解决此问题,但如果解释一下如何/为什么这样做,答案会更好。请记住,您的答案不仅针对提出问题的用户,也针对找到问题的所有其他人。
String.Format(CultureInfo.GetCultureInfo( "<yourculture>" ), "{0:n}", Convert.ToDouble(strNum)); 
string.Format( System.Globalization.CultureInfo.CreateSpecificCulture("hi-IN"), "{0:#,0.00}", Convert.ToDouble(strNum)