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)