Локализация с десятичным разделителем

Возможно ли, что .NET использует на сервере A ',' в качестве десятичного разделителя, а на другом сервере B '.'? + Как это обнаружить?

При преобразовании строк в дубли на сервере А все работает нормально, а вот на сервере Б возникают проблемы.

Пример:

сервер А: 20,4 --> 20,4 сервер Б: 20,4 --> 204

Нам нужно было бы обнаружить это, чтобы на обоих серверах все продолжало работать.

спасибо, Ливен Кардоен


person Lieven Cardoen    schedule 20.03.2009    source источник


Ответы (2)


Похоже, что на одном сервере локаль устанавливается правильно, а на другом нет.

Есть несколько способов сделать это, но вы можете установить языковой стандарт для текущего потока на странице приложения/ASP.NET, используя Thread.CurrentThread.CurrentCulture и Thread.CurrentThread.CurrentUICulture.

Чтобы установить это для всего приложения, вы должны сделать это в своем web.config:

<configuration>
  <system.web>
    <globalization culture="en-US" uiCulture="en-US" />
...
person Eric Petroelje    schedule 20.03.2009
comment
Можете ли вы установить это для всего приложения asp.net, а не для каждого потока отдельно? - person Lieven Cardoen; 20.03.2009
comment
Я предполагаю, что в вашем случае это может быть либо nl-BE, либо fr-BE, но вы поняли. - person Eric Petroelje; 20.03.2009

я использую

String.Format(System.Globalization.CultureInfo.InvariantCulture, ....)

в тех случаях, когда вы не хотите иметь вывод, специфичный для культуры. (Например, когда вы пишете сериализуемые данные для других приложений и т. д.). Таким образом, независимо от того, какая культура установлена ​​в данный момент, вывод всегда будет одним и тем же.

person f3lix    schedule 20.03.2009