2009-08-21 43 views
0

我正在處理我們的客戶端應用程序和服務器之間傳統的ASP接口。這不是一個網站,只是ASP中的一箇中間層(我知道這不是做事的首選方式,告訴你它是遺留的,而且不幸的是,在這一點上不會改變)。可靠地將字符串轉換爲獨立於經典ASP中的區域設置的雙重字符串?

所以我送一個雙值作爲查詢字符串這樣的參數:在ASP

http:\\localhost\virtdir\myobject.asp?f=function&1=5.25 

現在,我把該值並把它傳遞到方法上的COM組件(爲MyObject是使用CDbl將字符串值轉換到該COM組件的實例)雙:

myobject.DoMethod(CDbl(Request.QueryString("1"))) 

(其實,我不認爲我在這裏使用CDbl,因爲這將暗示,因爲COM被鑄造方法需要雙重參數?)

我現在的問題是,如果在服務器的區域設置中使用'''作爲小數分隔符,則這不起作用。在這種情況下,我必須在查詢字符串上傳遞「5,25」來使其工作。
由於客戶端不知道服務器的區域設置,是否有任何可靠的方法來確保對CDbl進行強制轉換將始終與相同的小數點分隔符一起工作,而不管區域設置如何?或者是否有像CDbl這樣的另一個功能呢?謝謝!

回答

2

你可能會迫使「當前文化」採用這種的方式調用cdbl

SetLocale(1033) 
Session.LCID = 1033 
+0

之前,你可以設置1033到別的東西僅僅指剛看對谷歌的全圖(很容易得到) – 2009-08-21 18:40:26

+0

尼斯!這是我需要的。儘管只有'SetLocale(1033)'已經足夠了。無需設置'Session.LCID',或者在我不知道的其他一些模糊場景中需要這樣做嗎? – fretje 2009-08-24 08:26:05

+0

nope它真實的相同的東西:) – 2009-08-24 11:42:25