Bal*_*ngh 6 c# windows-8 .net-4.5
我试图将字符串转换为印度货币格式,如果输入是"1234567"然后输出应为"12,34,567"
我写了下面的代码,但它没有给出预期的输出.
CultureInfo hindi = new CultureInfo("hi-IN");
string text = string.Format(hindi, "{0:c}", fare);
return text;
Run Code Online (Sandbox Code Playgroud)
谁能告诉我怎么做?
Mar*_*ell 16
如果fare是任意的int,long,decimal,float或double然后我得到的预期输出:
? 12,34,567.00.
我怀疑你fare的确是一个string; 字符串的格式不是string.Format:它们已经是一个字符串:没有格式化的值.所以:首先解析它(使用任何适当的,可能是一个不变的十进制解析),然后格式化解析的值; 例如:
// here we assume that `fare` is actually a `string`
string fare = "1234567";
decimal parsed = decimal.Parse(fare, CultureInfo.InvariantCulture);
CultureInfo hindi = new CultureInfo("hi-IN");
string text = string.Format(hindi, "{0:c}", parsed);
Run Code Online (Sandbox Code Playgroud)
编辑重新评论; 获得没有货币符号或小数部分的格式化值:
string text = string.Format(hindi, "{0:#,#}", value);
Run Code Online (Sandbox Code Playgroud)