我的 VBA MSAccess 平台中有一个例程让我感到困惑。我所做的只是在循环记录集时总结一个金额字段。
我已经声明了一个名为 TempAmount 的变量(它在我们循环时保存总计)。表中的字段名称在称为 rsBilled 的记录集中称为 BilledAmount。
循环开始时,TempAmount 为零。随着循环的进行,我们将 BilledAmount 添加到 TempAmount。
这是代码的模型。
Dim TempAmount as Double
TempAmount = 0
While NOT rsBilled.EOF
TempAmount = TempAmount + rsBilled.Fields("BilledAmount")
rsBilled.MoveNext
Wend
(然后我们将 TempAmount 写入另一个包含 Totals 的表。)
现在这一切都很好。除非 TempAmount 和 BilledAmount 的金额相反,这会产生零。
换言之,如果 TempAmount 为 15.25 且 BilledAmount = -15.25,则结果应为零。但这不会发生。相反,我得到了一些疯狂的扩展符号值,例如 2.123423523E-10。
同样,这仅在结果等于零时发生,因为正值被添加到相反的负值。
有什么线索吗?