ToString(“C”)在字符串前添加$符号。但我如何添加其他货币类型,如日元,俄罗斯卢布,印度卢比,瑞士弗兰克?
感谢
答案 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/dwhawy9k(v=vs.110).aspx#CFormatString