当前区域性 - 显示欧元符号 (€) 而不是 EUR 字符串

Current culture - display euro symbol (€) instead of EUR string

当前文化设置为 "sk-SK"(斯洛伐克货币为欧元)我想在 Razor 中将价格显示为货币时显示欧元符号 (€) 而不是 "EUR" 字符串 Price.ToString("c").

当我将当前文化更改为德语 ("de-DE") 时,会显示欧元符号 (€)。

我也想在显示斯洛伐克文化的价格时显示欧元符号(不是 "EUR" 字符串)。

我认为这是 OS 相关的(我们的 OS 是 Windows Server 2012)但本文建议更改默认货币:https://www.howtogeek.com/240216/how-to-change-windows-default-currency-from-dollars-to-euros/(在我们的例子中来自EUR 到 €) 不会改变货币符号的显示方式。如何将货币显示为欧元而不是欧元?

CultureInfo ci = new CultureInfo("sk-SK");
ci.NumberFormat.CurrencySymbol = "€";
CultureInfo.DefaultThreadCurrentCulture = ci;
double Price = 10.0;
Console.WriteLine(Price.ToString("c"));

这会产生输出

10,00 €

另一种可能性是将文化信息作为 IFormatProvider in ToString():

Console.WriteLine(Price.ToString("c",ci));