为什么使用“String * 1”进行强制转换失败? CDbl(string)可以在所有系统上工作吗?

我有一个应用程序,其中包含下面的行分配一个XML值的variables数组。

V(2) = latNode.Text * 1 

这在我的系统(Windows 7,Excel 2010)上工作正常,但在其他一些系统或系统上不起作用 – 而且我还没有得到报告问题的用户的响应。

我已经把违规的线路换掉了:

 V(2) = CDbl(latNode.Text) 

这仍然在我的系统上工作,但是,我没有问题摆在首位。 问题在于第一种方法失败的原因是什么,第二种方法是否会起作用? 我确定我以前在其他地方使用过“String * 1”的技巧,并且想知道我应该如何去关注其他事件。

谢谢。

也许它与千位分隔符和小数点有关。 Office VBA甚至在CDbl中使用文化设置,在我的德语Excel版本中,与英语相比, CDbl("123.4")被parsing为1234, CDbl("123,4")被parsing为123.4。

Val(x)将始终将小数点标记parsing为小数点。