long 支持小数吗?
Does long support decimals?
我试图理解 ByVal 和 ByRef,并使用 ByVal 关键字将参数从 long 传递到 double。
我注意到 VBA 给了我错误的 y 平方值答案。 当 y(我的 sub 中的 i)是整数时有效。
在下面的例子中我有 i = 22.5.
电子表格给了我 506.25。
我的函数给了我 484.
我以为 long 和 double 都支持小数。
Sub automation_test()
Dim i As Long
Dim j As Long
Dim x As Long
Dim ans As Long
i = Range("B1")
j = Range("B2")
x = Range("B3")
ans = my_model(i, j, x)
Range("B4").Value = ans
End Sub
Function my_model(ByVal y As Double, ByVal m As Double, ByVal q As Double) As Double
' my_model = (y ^ 2) * (m ^ 3) * (q ^ 1 / 2)
my_model = y ^ 2
End Function
您必须声明所有使用的变量 As Double
(或 As Single
,取决于要使用的最大值)。
Long
变量不接受小数。
差值恰好来自四舍五入(向下):
22.5^2 = 506.25
22^2 = 484
我试图理解 ByVal 和 ByRef,并使用 ByVal 关键字将参数从 long 传递到 double。
我注意到 VBA 给了我错误的 y 平方值答案。 当 y(我的 sub 中的 i)是整数时有效。
在下面的例子中我有 i = 22.5.
电子表格给了我 506.25。
我的函数给了我 484.
我以为 long 和 double 都支持小数。
Sub automation_test()
Dim i As Long
Dim j As Long
Dim x As Long
Dim ans As Long
i = Range("B1")
j = Range("B2")
x = Range("B3")
ans = my_model(i, j, x)
Range("B4").Value = ans
End Sub
Function my_model(ByVal y As Double, ByVal m As Double, ByVal q As Double) As Double
' my_model = (y ^ 2) * (m ^ 3) * (q ^ 1 / 2)
my_model = y ^ 2
End Function
您必须声明所有使用的变量 As Double
(或 As Single
,取决于要使用的最大值)。
Long
变量不接受小数。
差值恰好来自四舍五入(向下):
22.5^2 = 506.25
22^2 = 484