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

sni*_*its 4 c# string currency

ToString("C") 在字符串前添加 $ 符号。但是如何添加其他货币类型,例如日元、俄罗斯卢布、印度卢比、瑞士法郎?

谢谢

por*_*ges 5

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

\n\n
var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();\nculture.NumberFormat.CurrencySymbol = "!"; // or "\xc2\xa5", etc.\n\nvar amount = 1000D;\nConsole.WriteLine(amount.ToString("C", culture));\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出“!1,000.00”。

\n\n

正如其他答案所建议的那样,简单地指定不同的区域性将会为用户意外地格式化数字。例如:

\n\n
var amount = 1000D;\nConsole.WriteLine(amount.ToString("C", CultureInfo.CreateSpecificCulture("ru")));\nConsole.WriteLine(amount.ToString("C", CultureInfo.CreateSpecificCulture("id")));\n
Run Code Online (Sandbox Code Playgroud)\n\n

这输出:

\n\n
1 000,00 \xd1\x80.\nRp1.000\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n