买菜时把25块9的菜价砍成25块,这是取整;出租车司机指着计价器显示的45块2,收你46,这也是取整。
工作中,取整或者四舍五入在函数处理上就是参数大小的问题,常见的话0就是取整,2就是精确到2位小数,-2则是精确到百位。可见取整对于计算精度影响很大,而且用处很多,今天我们聊聊。
BTW:EXCEL选型——高级——勾选“将精度设为所显示的精度”,会根据肉眼可见的精确度来进行计算,如果发现公式计划误差放大了,大家要注意看看这里是不是勾选了。
01 函数简介及取整(去除小数)操作
先说去小数,即常规的取整操作。
你可能用到两类函数,一类是常见的取整函数,包括INT、TRUNC两个,另一类是四舍五入函数,包括ROUND、ROUNDDOWN、ROUNDUP三个。依次来介绍一下,为了方便大家理解和记忆,磊哥给这几个函数做了拟人化处理。
INT函数 //小心眼,以我为尊
一看就是小心眼:取整?可以,但是结果不能大于原来的数,难道我不要面子的啊?
比如表里的1302.73,不大于1302.73的最大的整数是1302,所以INT(1302.73)=1302;同理,不大于-1302.73的最大的整数是-1303,所以INT(-1302.73)=1303。
TRUNC函数 //钢铁直男,硬砍就是真理
听到取整的要求,钢铁直男二话不说,我们是讲道理的,取整就是只留整数!小数部分必须硬砍掉!挥刀直下,取整位后面的数字都剁了!
比如
TRUNC(3854.99)=3854
TRUNC(1407.14)=1407
嗯,最典型的表现,负号撇到一边,砍完再加上,你看:
TRUNC(1302.73)=1302
TRUNC(-1302.73)=-1302
//TRUNC函数标准表达为TRUNC(取整对象,参数),如果参数不写则默认为0,即:
TRUNC(1302.73,0)=TRUNC(1302.73)。
ROUND函数 //上进男,二话不说先进位
太想上进了,一听到要取整,不管不顾先四舍五入上位再说。糟了,忘了还有一个负号,嗯,趁人没发现,偷偷放回去……
比如:
ROUND(1302.73,0)=1303
ROUND(-1302.73,0)=-1303。
ROUNDDOWN函数 //妈宝男,离妈妈近点
作为妈宝男,取整的结果必须离妈妈(0)近点,也就是说,谁离0近选谁,有向心力。
如果取整的可能数字是2或者3,毫不犹豫的选2;如果取整的可能数字是-2或者-3,那也毫不犹豫的选-2。
比如:
ROUNDDOWN(1302.73,0)=1302
ROUNDDOWN(-1302.73,0)=-1302。
ROUNDUP函数 //叛逆男,越远越独立
叛逆男ROUNDUP,与ROUNDDOWN正好相反,取整的结果必须是离0远的那个,离心力十足。
比如:
ROUNDUP(1302.73,0)=1303
ROUNDUP(-1302.73,0)=-1303。
02 抹零操作
买东西老板一开心,直接把百位以下的零头抹掉了,你也很开心。
只是这个操作EXCEL里要选好函数,相对上面的取整操作,选错了那误差可不是1块钱了,而是100块。
INT函数
因为没有其他参数辅助,INT就不好直接用了,好在可以迂回:先除以100再取整,然后把100乘回去,自以为神不知鬼不觉。
如:
INT(9099.14/100)*100=INT(90.99)*100=90*100=9000
INT(-9099.14/100)*100=INT(-90.99)*100=-91*100=-9100。
剩下3个函数,把参数改为-2,即从小数点开始往左2位(参数为+2则是小数点往右2位)
TRUNC函数
钢铁直男,硬砍就好。
TRUNC(9099.14,-2)=9000,直接把99.14砍掉了。
同理TRUNC(-9099.14,-2)=-9000
ROUND函数
上进男,先进位。
ROUND(9099.14,-2)=9100,先看十位是9,可以进位了,变成了9千1百。
同理ROUND(-9099.14,-2)=-9100
ROUNDDOWN函数
妈宝男,边砍边看0在哪。
要什么9100,我肯定要9000啊!
ROUNDDOWN(9099.14,-2)=9000
ROUNDDOWN(-9099.14,-2)=-9000
在抹零操作上,妈宝男ROUNDDOWN与钢铁直男TRUNC竟然异曲同工了。
ROUNDUP函数
叛逆男,离心力很强。
ROUNDUP(9099.14,-2)=9100
ROUNDUP(-9099.14,-2)=-9100。