访问VBA错误获取Int()分区值

时间:2017-03-24 16:55:00

标签: vba access-vba access

不知道我在哪里丢失,但是当我划分除以3的任何浮点数时,下面的简单Access VBA片段返回2。

注意:我已收到此Int()函数的代码,但如果需要进行更改才能获得相同的结果,我可以更改任何内容。

Sub RoundTest()

    Dim a, b, c

    a = 4.8
    b = 1.6

    c = Int(a / b)

    MsgBox (c)

End Sub

你们有没有听说过这样的事情吗?我尝试了两台不同的计算机并获得了相同的结果。也许它与Access编译器或我的代码有关。

3 个答案:

答案 0 :(得分:0)

问题是你的Dim语句没有创建浮点数。它们都是变体数据类型。为了使其正常工作,您需要按如下方式对其进行修改:

Sub RoundTest()
    Dim a As Single, b As Single, c As Single

    a = 4.8
    b = 1.6
    c = Int(a / b)

    MsgBox (c)
End Sub

答案 1 :(得分:0)

使用CInt()代替Int()3作为答案。

答案 2 :(得分:0)

您应该始终使用CurrencyDecimal来精确处理小数:

Sub RoundTest()

    Dim a As Currency
    Dim b As Currency
    Dim c As Currency

    a = 4.8
    b = 1.6

    c = Int(a / b)

    MsgBox c   ' Returns 3.

End Sub

请注意,导致“问题”的是浮点错误,而不是Int。