3

我不知道为什么,但 vba 中的字符串是“12.00”,当我转换为双精度时

myDouble= CDbl(stringDouble)

或者

myDouble = stringDouble

我无能为力..有什么帮助吗?(我无法在所有电脑上将区域设置更改为 US ..)

谢谢

4

2 回答 2

8

正如您在评论中已经指出的那样,这是一个区域设置 - 当您的系统,用作小数分隔符时,字符串将转换为1200. 这种情况下的解决方案是将其转换为Val

Sub Sample()
    Dim myDouble As Double
    Dim stringDouble As String
    stringDouble = "12.00"
    myDouble = Val(stringDouble)
End Sub
于 2013-02-20T12:25:01.607 回答
3

这很可能是由于区域设置 - 小数分隔符不同。例如,在我的语言环境中它是,- 这就是为什么对于字符串到数字的转换我使用这样的语法:

x = "12.00"
DBLnum = CDbl(Replace(x, ".", ","))
于 2013-02-20T12:24:14.857 回答