Question: I have a base class that inherits a page and changes the culture based on a pre-determined value set in the database. I need the culture to change the currency symbol but nothing else. If the value in the db says en-GB I need for it to change all currency values on the page to British pounds, and if it sais en-US show a US Dollar Sign. I need the culture variable to only effect the currency and nothing else, all dates, etc should be in the default culture(en-US)

Any ideas?

Answer: 
Basically you need to use a format provider when formatting your numbers as currency. Have a look at the following example:

```
public static string CulturedCurrency(decimal number,string culture = "en-US")
{
       NumberFormatInfo numberInfo = CultureInfo.CreateSpecificCulture(culture).NumberFormat;
        return number.ToString("c",numberInfo);
} 

```

Reference: <http://geekswithblogs.net/dtotzke/articles/24573.aspx>

If you want to do it inline on databinding have a look at the code here: [Format string by CultureInfo](https://stackoverflow.com/questions/1266093/format-string-by-cultureinfo)
A little add on Rob's answer, if you have a localization attribute in your URL, and thus setting the Culture on every request, you might just want to do it like this:

```
//get language attribute from url. (requires special routing in MVC)
string lang = (string)filterContext.RouteData.Values["lang"] ?? _DefaultLanguage;
switch (lang)
{
    case "nl":
        lang = "nl-NL";
        break;
    case "en":
        lang = "en-GB";
        break;
    case "en-US":
        lang = "en-US";
        break;
    default:
        lang = _DefaultLanguage;//nl-NL
        break;
}

NumberFormatInfo numberInfo = CultureInfo.CreateSpecificCulture("nl-NL").NumberFormat; //always use euros as currency
CultureInfo info = new CultureInfo(lang);
info.NumberFormat = numberInfo;

```