2014-01-30 2 views
1

Я просто испытал очень странную проблему, и я надеюсь, кто-то может объяснить, почему это произошло?C# Понимание вопросов о десятичном сепараторе (double)

У меня есть приложение, которое работает как служба Windows, под учетной записью локальной системы. При запуске службы Windows, позвонив по телефону .ToString() по двойному номеру 515.45, он возвращал 515,45. Это, несмотря на то, что мои региональные настройки настроены на использование . в качестве разделителя, а не , Однако при работе с точным фрагментом кода через Visual Studio он корректно возвращает 515.45.

Я пытаюсь понять, почему десятичный разделитель будет отличаться через VS и через службу Windows?

Я работаю под управлением Windows 8.1 Pro. Регион установлен на английский США, местоположение установлено в Южную Африку.

+0

Windows версия? Сервисы обычно выполняются на другой учетной записи, кроме той, с которой вы входите в систему ... – Mr47

+0

Существуют региональные настройки для каждого пользователя и системы. Они не должны быть одинаковыми. –

ответ

1

Это потому, что сервис работает под другим пользователем, чем тот, который вы используете для запуска Visual Studio.

Вы можете скопировать настройки своей культуры в системные учетные записи в control panel (я не знаю, было ли это изменено в Windows 8, но я так не думаю).