VBA基础语法:取整函数

若如初见. 提交于 2020-01-18 06:42:09

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

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函数来四舍五入。什么是“银行家舍入”呢,定义如下:
“四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一”。这个四舍五入法是一个国际标准,大部分的编程软件都使用的是这种方法,据说国际上一般都是用这种方法的。
如果在Excel VBA中进行四舍五入处理,也可以直接调用Excel工作表函数,达到直接四舍五入的目的Application.Round(A,B),例如,下面例句可以看出运行效果:
    a = Application.Round(12.5, 0)  'a=13
    b = Round(12.5)                        'b=12
————————————————
版权声明:本文为CSDN博主「宋哥」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iamlaosong/article/details/49333779

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!