Как получить текущую культуру отформатированной валюты числа - PullRequest
0 голосов
/ 21 мая 2019

Используя приведенный ниже способ, можно получить 2-значную валюту для текущей культуры. string.Format(CultureInfo.CurrentCulture, "{0:C2}", amount) получить результат как: $1,000.00

Как мы можем получить валюту, используя символ валюты, такой как USD или EUR, как показано ниже,

ожидаемый результат: 1,000.00 USD

1 Ответ

2 голосов
/ 21 мая 2019

Этого можно достичь с помощью класса RegionInfo:

decimal amount = 1000m;

CultureInfo culture = CultureInfo.CurrentCulture;
RegionInfo region = RegionInfo.CurrentRegion; //or new RegionInfo(...)
string formattedCurrency = string.Format(CultureInfo.CurrentCulture, "{0:C2} {1}", amount, region.ISOCurrencySymbol);  

В приведенном выше коде formattedCurrency приводит к строковому значению "$1,000.00 USD".

Если вы не ожидаете символа валюты, вы можете сделать что-то вроде Replace(culture.NumberFormat.CurrencySymbol, "") или использовать спецификатор N вместо C. Оба результата дают значение "1,000.00 USD" (с моим регионом / культурой). Эта конкретная тема рассматривается в этом вопросе: Форматировать двойное значение, например валюту, но без знака валюты (C #)
Обратите внимание, что принятый ответ (с использованием N) не подходит для всех культур.

...