Я знаю, что это работает (source):Double ToString ("C") культура конкретных
double x = 9.7;
x.ToString("C", CultureInfo.CreateSpecificCulture("nl-NL"));
Но у меня есть этот код в моем коде позади:
System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB");
и в моей ASPX веб-формы , Я бы хотел использовать double.tostring("C")
, так что там нетинформации. Потому что он установлен на текущий поток. Но местная машина nl-NL
. CurrentThread установлен в en-GB в коде позади, но valutasign по-прежнему является знаком евро вместо фунта.
Я что-то упустил? Или используется перегрузка tostring с требованием cultureinfo? Другими словами, нужно ли переписывать все двойные строки для использования cultureinfo?
В каком коде вы назначаете 'CurrentCulture'? Тем не менее, не совсем понятно, что вы хотите. Вы говорите, что первый фрагмент работает, а затем 1.) Почему вы не используете его? 2.) Вы хотите фунт вместо знака евро, так почему вы используете 'x.ToString (« C », CultureInfo.CreateSpecificCulture (« nl-NL »))? –
Затем просто используйте 'x.ToString (« C »)', если вы _sure_ вы оцениваете текущую культуру потока как 'en-GB'? –
@xanatos: Я думал, что весь lifeycle обрабатывается из той же темы, есть ли у вас ссылка? –