Я работаю над устаревшим классическим интерфейсом ASP между нашим клиентским приложением и сервером. Это не веб-сайт, а промежуточный уровень в ASP (я знаю, что это не самый предпочтительный способ ведения дел, я сказал вам, что это наследие, и его, к сожалению, нельзя изменить на данном этапе).
Итак, я отправляю двойное значение в качестве параметра в строке запроса следующим образом:
http:\\localhost\virtdir\myobject.asp?f=function&1=5.25
Теперь в ASP я беру это значение и передаю его методу в COM-компоненте (myobject является экземпляром этого COM-компонента), используя CDbl для преобразования строкового значения в double:
myobject.DoMethod(CDbl(Request.QueryString("1")))
(На самом деле, я не думаю, что здесь нужно использовать CDbl, так как он будет приведен неявно, потому что метод COM принимает в качестве параметра значение типа double?)
Моя проблема сейчас в том, что это не работает, если в региональных настройках сервера в качестве десятичного разделителя используется символ ','. В этом случае я должен передать «5,25» в строке запроса, чтобы он работал.
Поскольку клиент не знает о региональных настройках сервера, существует ли надежный способ убедиться, что приведение к CDbl всегда будет работать с одним и тем же десятичным разделителем, независимо от региональных настроек? Или есть другая функция, как CDbl, которая делает это? Спасибо!