VBA Access 中舍入的最佳方法是什么?
我目前的方法是利用Excel方法
Excel.WorksheetFunction.Round(...
但我正在寻找一种不依赖Excel的方法。
请注意,VBA Round 函数使用 Banker 舍入,将 0.5 舍入为偶数,如下所示:
Round (12.55, 1) would return 12.6 (rounds up)
Round (12.65, 1) would return 12.6 (rounds down)
Round (12.75, 1) would return 12.8 (rounds up)
而 Excel 工作表函数 Round 则始终向上舍入 0.5。
我已经做了一些测试,看起来 0.5 向上舍入(对称舍入)也用于单元格格式,也用于列宽舍入(使用通用数字格式时)。 “显示精度”标志本身似乎没有进行任何舍入,它只是使用单元格格式的舍入结果。
我尝试在 VBA 中实现 Microsoft 的 SymArith 函数进行舍入,但发现当您尝试给它一个像 58.55 这样的数字时,Fix 会出错;该函数给出的结果是 58.5,而不是 58.6。然后我终于发现你可以使用 Excel Worksheet Round 函数,如下所示:
应用程序.轮(58.55, 1)
这将允许您在 VBA 中进行正常舍入,尽管它可能不如某些自定义函数那么快。我意识到这已经从问题中得到了完整的解答,但为了完整起见,我想将其包括在内。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)