0

可能重复:
使用千位分隔符将字符串值转换为十进制?

这可能是一个非常简单的问题。

我想要一个将数字转换为货币格式。

双数 = 1000000.00;

转换成

字符串 Strnumber = 10,00,000.00;

任何想法?..................

但它只显示数字而不是货币名称

4

3 回答 3

1

使用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);
于 2012-12-11T10:43:08.457 回答
0
decimal value = 16325.62m;
string specifier;

specifier = "N";
Console.WriteLine("{0}: {1}", specifier, value.ToString(specifier));
// Displays:    N: 16,325.62
于 2012-12-11T10:43:10.907 回答
0

从所需的输出来看,您似乎正在使用印度数字分组系统。

以下应为您提供以 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
于 2012-12-11T10:52:17.517 回答