首页 > 解决方案 > Excel VBA除小数导致答案太大100倍

问题描述

在 Excel VBA (2016) 中尝试除以带小数的数字时遇到了一个奇怪的问题

Dim a As Double
Dim b As Double
Dim result As Double

a = 0.55
b = 16.8

result = a / b

MsgBox (result)
MsgBox (0.55 / 16.8)

两个 msgbox 都显示 3.2738....正确答案应该是 0.0327....

如果我从 b 中删除小数位,使计算 0.55 / 16 它显示正确答案 0.0343...

除以十进制数的行为似乎使答案变得太大了 100 倍。

这是怎么回事?

我在我的 PC 上尝试了同样的 VB.NET,它工作正常,所以我不认为这是系统/语言环境问题。

标签: excelvba

解决方案


要获得更直观的结果:

Sub qwerty()

    Dim a As Double
    Dim b As Double
    Dim result As Double
    
    a = 0.55
    b = 16.8
    
    result = a / b
    
    MsgBox (Format(result, "0.000000"))

End Sub

在此处输入图像描述


推荐阅读