Problem z podjęciem określonej liczby i wyświetla go z .ToString („C”, kultura) jest to, że skutecznie zmienia kwotę walucie danej kultury. Jeśli masz określoną kwotę, kod waluty ISO o tej wartości i chcesz wyświetlić go dla danej kultury, poleciłbym po prostu utworzenie metody dziesiętnej, takiej jak poniższa. To nie będzie automatycznie zakładać, że waluta jest w walucie kultury:
public static string ToFormattedCurrencyString(
this decimal currencyAmount,
string isoCurrencyCode,
CultureInfo userCulture)
{
var userCurrencyCode = new RegionInfo(userCulture.Name).ISOCurrencySymbol;
if (userCurrencyCode == isoCurrencyCode)
{
return currencyAmount.ToString("C", userCulture);
}
return string.Format(
"{0} {1}",
isoCurrencyCode,
currencyAmount.ToString("N2", userCulture));
}
to będzie użyć lokalnej symbol waluty lub kod ISO waluty z wysokości - w zależności od tego jest bardziej odpowiednie.Więcej na temat in this blog post.
Jedna mała uwaga dla przyszłych czytelników, dziesiętne są preferowanym rodzajem na wartości waluty. Zobacz tę odpowiedź od Zneaka po więcej szczegółów: https://stackoverflow.com/a/3730040/2573109 –