可能重复:
使用千位分隔符将字符串值转换为十进制?
这可能是一个非常简单的问题。
我想要一个将数字转换为货币格式。
双数 = 1000000.00;
转换成
字符串 Strnumber = 10,00,000.00;
任何想法?..................
但它只显示数字而不是货币名称
可能重复:
使用千位分隔符将字符串值转换为十进制?
这可能是一个非常简单的问题。
我想要一个将数字转换为货币格式。
双数 = 1000000.00;
转换成
字符串 Strnumber = 10,00,000.00;
任何想法?..................
但它只显示数字而不是货币名称
使用C
货币的格式说明符。
Double number = 1000000.00;
String output = number.ToString("C2");
编辑:如果您不想要评论中的货币符号,您可以ToString
使用FormatProvider
. 然后传递一个NumberFormatInfo
没有符号的自定义:
var culture = CultureInfo.CurrentCulture;
var mutableNfi = (NumberFormatInfo) culture.NumberFormat.Clone();
mutableNfi.CurrencySymbol = "";
String output = number.ToString("C2", mutableNfi);
decimal value = 16325.62m;
string specifier;
specifier = "N";
Console.WriteLine("{0}: {1}", specifier, value.ToString(specifier));
// Displays: N: 16,325.62
从所需的输出来看,您似乎正在使用印度数字分组系统。
以下应为您提供以 Lakh/Crore 等格式形成的值。
Double number = 1000000.00;
Console.WriteLine(String.Format(new System.Globalization.CultureInfo("en-IN"), "{0:C2}", number));
它应该输出
10,00,000.00
如果要显示不带货币符号的数字。您可以使用N
通用数字说明符重新格式化数字。唯一要考虑的问题是您希望如何显示负数。例如,
Double number = 1000000.00;
Console.WriteLine(String.Format(new System.Globalization.CultureInfo("en-IN"), "{0:N2}", number));
或者,您可以替换数字格式说明符中的货币符号。例如,
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-IN");
ci.NumberFormat.CurrencySymbol = "";
Console.WriteLine(String.Format(ci, "{0:N2}", number));
两者都应该输出
10,00,000.00