Se ho una WebPart di SharePoint che accetta in input dei valori numerici inseriti come stringhe in una textbox, l'ideale è "parsare" questi valori in accordo con le impostazioni internazionali del sito corrente.
Per far questo bisogna usare la proprietà Locale dell'oggetto SPWeb che ritorna un oggetto System.Globalization.CultureInfo e poi le funzioni Parse o TryParse di .NET.
Ecco un esempio:
// recupero i regional setting del sito corrente
System.Globalization.CultureInfo ci = SPContext.Current.Web.Locale;

// una text box dell'applicazione
string strQuantita = txt.Text

double quantita = 0.0;

//converto la stringa che rappresenta il numero decimale / float con possibilità di avere i separatori delle migliaia
Double.TryParse(strQuantita, NumberStyles.Float | NumberStyles.AllowThousands, ci, out quantita)
in alternativa posso anche usare
Double.TryParse(strQuantita, NumberStyles.Any, ci, out quantita)
per permettere qualsiasi formato numerico.
Oppure:
Double.TryParse(strQuantita, NumberStyles.Any ^ NumberStyles.AllowThousands, ci, out quantita)
per non permettere l'uso dei separatori delle migliaia.

Stesso discorso se voglio visualizzare i dati numerici in accordo ai RegionalSettings:
System.Globalization.CultureInfo ci = SPContext.Current.Web.Locale;
double quantita = 1277.01;
string strQuantita = quantita.ToString(ci);