Вопрос

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

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

Пример:

сервер А:20,4 -> 20.4 Сервер B:20,4 --> 204

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

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

Это было полезно?

Решение

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

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

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

<configuration>
  <system.web>
    <globalization culture="en-US" uiCulture="en-US" />
...

Другие советы

я использую

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top