gpt4 book ai didi

vba - 为什么 Round 产生的结果与 Application.Round 不同

转载 作者:行者123 更新时间:2023-12-02 21:34:28 25 4
gpt4 key购买 nike

我发现 VBA Round 函数返回错误的结果。我找到了一个可行的替代方案,即使用 Application.Round 代替。

为什么 VBA Round 函数没有按预期工作?

Sub roundingResults()
Range("A1") = 123456.705
Debug.Print "Approach #1 " & Round(Range("A1").Value, 2)
Debug.Print "Approach #2 " & Application.Round(Range("A1").Value, 2)
End Sub

输出

Approach #1 123456.7
Approach #2 123456.71

最佳答案

对于如何舍入没有完全正确的答案。差异与如何处理恰好落在中点的值有关。在这种情况下,Application.Round 将始终向上舍入。例如0.5 将四舍五入为 1.0。 VBA.Round 将平局决胜到最接近的偶数

1.5-->2   
2.5-->2
3.5-->4

等等。这是减少始终向上舍入所固有的偏差的多种方法中的一种。

此外,如果有兴趣,this Wikipedia article 中有关于舍入的相当广泛的讨论。

关于vba - 为什么 Round 产生的结果与 Application.Round 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36754959/

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