如何在数字前添加货币符号?

时间:2014-01-29 01:57:13

标签: c# string currency

ToString(“C”)在字符串前添加$符号。但我如何添加其他货币类型,如日元,俄罗斯卢布,印度卢比,瑞士弗兰克?

感谢

4 个答案:

答案 0 :(得分:4)

您可以克隆当前文化并将货币符号修改为您想要的任何内容:

var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.NumberFormat.CurrencySymbol = "!"; // or "¥", etc.

var amount = 1000D;
Console.WriteLine(amount.ToString("C", culture));

输出“!1,000.00”。

如同其他答案建议的那样简单地指定不同的文化将为用户意外地格式化数字。例如:

var amount = 1000D;
Console.WriteLine(amount.ToString("C", CultureInfo.CreateSpecificCulture("ru")));
Console.WriteLine(amount.ToString("C", CultureInfo.CreateSpecificCulture("id")));

输出:

1 000,00 р.
Rp1.000

请注意,千位和小数分隔符与我期望使用“en-US”文化的情况大不相同!

答案 1 :(得分:3)

将文化更改为specific country culture,例如:

var no = 1000;
var culture = CultureInfo.CreateSpecificCulture("id-ID");
Console.WriteLine(no.ToString("C", culture));

将以印度尼西亚语中的印尼符号打印:

Rp1.0000

答案 2 :(得分:3)

ToString的重载接受IFormatProvider

Console.WriteLine(amount.ToString("C", CultureInfo.CreateSpecificCulture("ja-JP")));

示例输出:¥5

更多信息:http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#CFormatString

答案 3 :(得分:3)

要执行此操作,您必须指定要显示的货币的区域设置。以下是我认为您正在寻找的一个例子。

object.ToString("C", CultureInfo.CreateSpecificCulture("ja-JP"))

该示例应返回带有日元符号的对象的值。如需使用不同的货币,请参阅:

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.createspecificculture(v=vs.110).aspx 它包含可用选项列表。

有关格式化字符串的更多信息,请点击此处:

http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#CFormatString