可靠地将字符串转换为双重独立于经典ASP中的区域设置?

时间:2009-08-21 08:10:37

标签: vbscript asp-classic casting

我正在研究客户端应用程序和服务器之间的传统经典ASP接口。这不是一个网站,只是ASP中的一个中间层(我知道这不是首选的做事方式,告诉你它的遗产,不幸的是 - 它现在不能改变)。

所以我在查询字符串上发送一个double值作为参数,如下所示:

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这样的功能呢?谢谢!

1 个答案:

答案 0 :(得分:2)

你可以在调用cdbl

之前强制使用“当前文化”
SetLocale(1033) 
Session.LCID = 1033