我在string
中有一个数字值
string strNum = "12345678.90";
我想使用regex
String.Format()
使用逗号分隔符对其进行格式化
在
中使用"{0:n0}"
格式
String.Format("{0:n0}", Convert.ToDouble(strNum));
它输出为"12,345,679"
而不是我希望输出为"1,23,45,678.90"
。经过千千万万的地方,我想要两个数字后的逗号分隔符,分别为十万分之一,十分之一等等
如何实现这一目标?
答案 0 :(得分:6)
var s = String.Format(new CultureInfo( "en-IN", false ), "{0:n}", Convert.ToDouble("12345678.90"));
答案 1 :(得分:2)
对于这种典型的方式,我会编写一个专门的函数,将一个数字转换为你建议的字符串。
我甚至建议将该项目作为一个类,将值表示为float或不同的项目,如十字架,crores等。
然后创建一个ToString方法以您想要的方式输出它。
示例(未测试):
class SpecialNumber
{
int _lakhs;
int _crores;
int _another_unit;
int _rest;
public SpecialNumber(int lakhs, int crores, int another_unit, int rest)
{
_lakhs = lakhs;
_crores = crores;
_another_unit = another_unit;
_rest = rest;
}
public string ToString()
{
// Check for exact formatting.
return String.Format("{0:2},{1:2},{2:3}.{0:2}",
_laksh, _crores, _another_unit, _rest);
}
答案 2 :(得分:0)
我最好的选择是使用String.Format以及#'#'就这样:
String.Format(0:##,##,##,##,##,###.##)
'#'是一个数字占位符,如果数字不够大,则不会显示零(或其他任何内容)。
有关详细信息,请参阅MSDN custom numeric format strings。
答案 3 :(得分:0)
你似乎根据印地文化格式。
所以设置你的文化,或者提供文化String.Format
,如
String.Format(CultureInfo.GetCultureInfo( "<yourculture>" ), "{0:n}", Convert.ToDouble(strNum));
答案 4 :(得分:0)
使用此代码,您可以将金额字符串更改为印度标准逗号分隔值;使用区域性"hi-IN"
和格式"{0:#,0.00}"
这里strNum
是我的字符串值。
string.Format( System.Globalization.CultureInfo.CreateSpecificCulture("hi-IN"), "{0:#,0.00}", Convert.ToDouble(strNum)