我想字符串转换为印度货币格式一样,如果输入“1234567”,那么输出应是“12,34,567”
我已经写了下面的代码,但它不是给出预期的输出。
CultureInfo hindi = new CultureInfo("hi-IN");
string text = string.Format(hindi, "{0:c}", fare);
return text;
谁能告诉我如何做到这一点?
我想字符串转换为印度货币格式一样,如果输入“1234567”,那么输出应是“12,34,567”
我已经写了下面的代码,但它不是给出预期的输出。
CultureInfo hindi = new CultureInfo("hi-IN");
string text = string.Format(hindi, "{0:c}", fare);
return text;
谁能告诉我如何做到这一点?
如果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);
编辑再评论; 得到的只是没有货币符号或小数部分格式化的值:
string text = string.Format(hindi, "{0:#,#}", value);
的String.Format( “0:C0”)对没有小数位。
按我上面的评论,你可以实现你的愿望通过克隆的NumberFormatInfo并设置货币符号属性为空字符串
例如可以在这里找到-往下看页面的底部
编辑:这是格式化你的问题上面链接后:
var cultureInfo = new CultureInfo("hi-IN")
var numberFormatInfo = (NumberFormatInfo)cultureInfo.NumberFormat.Clone();
numberFormatInfo.CurrencySymbol = "";
var price = 1234567;
var formattedPrice = price.ToString("0:C0", numberFormatInfo); // Output: "12,34,567"
试试这个
int myvalue = 123456789;
Console.WriteLine(myvalue.ToString("#,#.##", CultureInfo.CreateSpecificCulture("hi-IN")));//output;- 12,34,56,789
如果你想在Razor视图文件显示,再使用,
@String.Format(new System.Globalization.CultureInfo("hi-IN"), "{0:c}", decimal.Parse("12345678", System.Globalization.CultureInfo.InvariantCulture))
// Output: ₹ 1,23,45,678.00