在印度和其他亚洲国家,资金的格式如下: 前三个数字分为三个,然后所有其他数字按两对分组。 例如:2,54,255.12 5,22,54,255.12等 string money = String.Format(“{0:#,## 0.00}”,254255.12);
给出输出254,255.12
但所需的输出是2,54,255.12
答案 0 :(得分:14)
使用适当的CultureInfo和“c”格式说明符:
CultureInfo hindi = CultureInfo.CreateSpecificCulture("hi-IN");
string text = string.Format(hindi, "{0:c}", 254255.12);
请注意,您应该使用decimal
而不是double
来获取货币值,以避免二进制浮点问题。
答案 1 :(得分:1)
这是一种简单明了的方法:
System.Globalization.CultureInfo ci =
System.Globalization.CultureInfo.GetCultureInfo("hi-IN");
Console.WriteLine((123456789.87).ToString("N", ci));
请注意,这是通过格式为provider / culture对象的正确配置的NumberFormatInfo结构来实现的。如果需要,您也可以创建自己的文化对象:
foreach (int gs in ci.NumberFormat.CurrencyGroupSizes)
{
Console.WriteLine(gs);
}
另请注意,如果系统配置为hi-IN是计算机上的本机文化,则默认情况下将以这种方式格式化数字,而无需显式检索区域性并将其传递给格式提供程序参数。