为什么使用“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为小数点。