gpt4 book ai didi

Excel VBA双重加法错误

转载 作者:行者123 更新时间:2023-12-04 21:41:56 28 4
gpt4 key购买 nike

我很难解释这个。以下函数用作工作表公式。 “空”值仅表示单元格为空,因此没有任何值。给定值 {empty, empty, 0.8, 0.2},以下函数有时会返回值,例如 5.55111512312578E-17。在调试器中,看起来一切都是正确的,直到 ParamArray 中的最后一个值(在本例中为 0.2)被处理。有什么想法吗?

   Private Function getOvertimeEP(ParamArray epAllocations() As Variant)
Dim overtimeEP As Double
overtimeEP = -1

For Each nextVal In epAllocations
overtimeEP = overtimeEP + nextVal
Next

If overtimeEP < 0 Then
overtimeEP = 0
End If

getOvertimeEP = overtimeEP
End Function

最佳答案

该错误是 floating point accuracy problems 的结果.即使您的前两个值是 0 和 0,它仍然会有相同的结果。 {0.1, 0.2, 0.3, 0.4} 也是如此。

在返回之前将其四舍五入到合理的小数位数并结束。

关于Excel VBA双重加法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3207453/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com