我通过XmlHttp
请求下载汇率,该请求作为string
(作为.innerText
元素的<div>
)进入代码内并代表{{ 1}}类型编号:double
。
在构建此脚本时,我已在具有英文文化模型的操作系统上完成此操作(即1.525
表示1个单位和0.525个小数)。
但是,此脚本现在将在法语操作系统上运行,该操作系统使用逗号1.525
而不是,
来分隔小数。
这意味着,如果.
而不是Application.Evaluate(10000/myRate)
,则操作.
将失败。
简单的解决方案是更换&#34;。&#34;与&#34;,&#34;通过,
。但是,这显然不太好,因为现在脚本在英语系统上会失败。
使用Application.Evaluate(10000/Replace(myRate,".",",")
我可以通过转换它来使其独立于文化:
VB.NET
我尝试用谷歌搜索VBA替代品一段时间没有成功;有没有人知道是否有更优雅的方式使我的脚本国际化,而不仅仅是替换&#34;。&#34;使用&#34;,&#34;?
这是我目前的解决方案(我不是很喜欢):
myRate.ToDouble(System.Globalization.CultureInfo.InvariantCulture)
答案 0 :(得分:4)
使用Application.DecimalSeparator
属性?
Application.Evaluate(10000/CDbl(Replace(myRate,".", Application.DecimalSeparator))
答案 1 :(得分:3)
您可以使用Application对象临时更改decimal和千位分隔符。
要阅读几个当前的OS(国际)设置:Application.International(index) property
改变:
Application.ThousandsSeparator = "."
答案 2 :(得分:0)
在MS Access中,我们没有Application.DecimalSeparator
,Application.ThousandsSeparator
也没有Application.International
。我们唯一拥有的是Val(vString)
和Str(vNumber)
。他们都使用英语(不变)文化来转换论证。
所以,在MS Access中,OP的问题可以这样解决:
vResult = 10000/Val(myRate)