LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

使用VBA自带Round函数所遇到的坑

admin
2024年10月29日 18:44 本文热度 246

ROUND函数大家都非常熟悉,是Excel中用于对数字进行四舍五入的函数。它可以将一个数值按照指定的位数进行近似处理。

它的语法也非常简单:ROUND(number, num_digits)

当num_digits大于0 时,表示要将数字四舍五入到指定的小数位数。

如ROUND(2.786,2)的结果是2.79。

当num_digits等于 0 时,表示将数字四舍五入到最接近的整数。

如ROUND(3.6,0)的结果是4,而ROUND(3.4,0)的结果是3。

当num_digits小于 0 时,表示对整数部分进行四舍五入。具体来说,num_digits为-1时,函数会将数字四舍五入到十位;num_digits为-2时,函数会将数字四舍五入到百位,以此类推。

如ROUND(1236,-1)的结果是1240;ROUND(1236,-2)的结果是1200。

上面的都好理解,但是如果在VBA中使用内置的Round函数,结果就有所不同啦,这就是我遇到的坑。

比如说ROUND(4.45,1)的结果是4.5,但是在使用VBA内置的Round函数运行的结果却是4.4,这个结果显然不是我们在实际工作中所需要的。

如下图所示:

这到底是什么原因呢?原因是VBA内置的Round函数在对数值进行四舍五入运算时实行的是Bankre舍入规则。Banker 舍入,也称为四舍六入五成双,是一种在数值计算中比较精确的舍入方式。它的基本规则是:当舍去位的数值小于 5 时,直接舍去;当舍去位的数值大于 5 时,进位;当舍去位的数值等于 5 时,如果进位后前一位数字为偶数,则舍去,若前一位数字为奇数,则进位。

针对上面的4.45保留一位小数,怎么在VBA中让它变成正常的呢。

解决方法有两种:

方法一:使用工作表函数

注意:这里使用Application和不使用Application是完全不同的。

方法二:进行修正

注意:修正的小数位数一定要高于原来数据的小数位数。


该文章在 2024/10/30 11:41:31 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved