2009-08-21 24 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