作者:iamlaosong VBA取整函数有好几个,用法也不同,有的还可以在工作表中使用,下面根据需求分别说明: 1、四舍五入取整,一般用于取近似数 (1)CInt:只能在VBA中使用 CInt(12.56)=13, CInt(12.46)=12, CInt(-12.56)=-13, CInt(-12.46)=-12 (2)Round:在VBA中使用和CInt相同 Round(12.56)=13, Round(12.46)=12, Round(-12.56)=-13, Round(-12.46)=-12, 此函数实际上有两个参数,第二个参数表示取小数的位数,或略表示取整,即小数位数为0。该函数还可以在工作表中使用,使用时两个参数必须写全,即: Round(12.56,0)=13, Round(12.56,1)=12.6 2、取整数部分,小数舍弃,常用于取整数和余数(1)Fix:只能在VBA中使用 Fix(12.56)=12, Fix(12.46)=12, Fix(-12.56)=-12, Fix(-12.46)=-12 (2)Int:在VBA和工作表中都可以使用 此函数取正数时和Fix相同,负数时往绝对值高的方向取,就是说,取小于其值得整数, Int(12.56)=12, Int(12.46)=12, Int(-12.56)=-13, Int(-12.46)=-13 举例:买50个鸡蛋,12个鸡蛋一盒,那么需要Fix(50/12)=4盒,零头50 mod 12=2个 3、往上取整,只要有小数,整数部分就加1,常用于资费计算 邮件资费定价时常用不足500g按500g计算,即501g相当于2个500g计算资费。本功能VBA没有专门的函数,不过可以用数值+0.5再四舍五入取整实现,例如: CInt(12.56+0.5)=13, CInt(12.46+0.5)=13, CInt(12.01+0.5)=13 不过,工作表中还是有一个Ceiling函数可以实现这个功能,Ceiling(12.01,1)=13,第二个参数1表示舍入到最近的整数。VBA中可以用下列方式引用: a = Application.Ceiling(12.06, 1) 'a=13 Ceiling函数功能比较复杂,这儿就不详细介绍了。 4、关于Round函数进行四舍五入 VBA中Round函数进行四舍五入并不是逢5就入,例如: round(0.5)=0、 round(1.5)=2 、 round(2.5)=2 、round(3.5)= 4 、round(4.5)=4 ,难到还分奇偶?答案是确实分奇偶,在VBA中Round函数是采用“银行家舍入”,建议大家在VBA中慎重使用Round函数来四舍五入。什么是“银行家舍入”呢,定义如下: |
|