一、ROUND函数是常用的四舍五入函数之一,用于将数字四舍五入到指定的位数。

该函数对需要保留位数的右边1位数值进行判断,若小于5则舍弃,若大于等于5则进位。

其语法结构为:ROUND(number,num_digits),第2个参数num_digits是小数位数。若为正数,则对小数部分进行四舍五入;若为负数,则对整数部分进行四舍五入。

将数值728.492四舍五入保留2位小数,结果为728.49 。

=ROUND(728.492,2)

将数值-257.1四舍五入到十位,结果为-260

=ROUND(-257.1,-1)

二、FIXED函数也可将数字四舍五入到指定的位数。

该函数的舍入规则与ROUND函数一致,不同的是FIXED函数的返回结果是文本,且能返回带千位分隔符的格式文本。

FIXED(number,decimals,no_commas),  FIXED(数值,小数位数,有无逗号分隔)

其语法结构为:decimals参数是四舍五入的位数。若为正数,则对小数部分进行四舍五入;若为负数,则number从小数点往左按相应位数四舍五入。若省略该参数,则按其值为2进行四舍五入。

no_commas参数是一个逻辑值。若为TRUE,则返回不包含千位分隔符的结果文本;若为FALSE或省略,则返回带千位分隔符的结果文本。

分别使用以下几个公式将数值28359.476四舍五入保留两位小数。

=ROUND(28359.476,2)

该公式结果为数值28359.48。

=FIXED(28359.476)

该公式结果为带千位分隔符的文本28,359.48。

=FIXED(28359.476,2,TRUE)

该公式结果为不带千位分隔符的文本28359.48。

分别使用以下几个公式将数值-5782.3四舍五入到十位:

=ROUND(-5782.3,-1)

该公式结果为数值-5780。

=FIXED(-5782.3,-1)

该公式结果为带千位分隔符的文本-5,780。

=FIXED(-5782.3,-1,TRUE)

该公式结果为不带千位分隔符的文本-5780。

特定条件下的舍入
在实际工作中,不仅需要按照常规的四舍五入法来进行取舍计算,而且需要更灵活的特定舍入方式,下面介绍两则算法技巧。

按0.5单位取舍:将目标数值乘以2,按其前1位置数值进行四舍五入后,所得数值再除以2。

按0.2单位取舍:将目标数值乘以5,按其前1位置数值进行四舍五入后,所得数值再除以5。

 

三、MROUND函数可返回参数按指定基数四舍五入后的数值

语法结构为:MROUND(number,multiple)

如果数值number除以基数multiple的余数大于或等于基数的一半,则MROUND函数向远离零的方向舍入。

注意:当MROUND函数的两个参数符号相反时,函数返回错误值#NUM!。

示例:特定条件下的舍入计算

如图15-3所示,分别使用不同的公式对数值进行按条件取舍运算。

图15-3按指定条件取舍

C4单元格使用ROUND函数的公式为:=ROUND(B4*5,0)/5

D4单元格使用MROUND函数的公式为:=MROUND(B4,SIGN(B4)*0.2)

其中SIGN函数取得数值的符号,如果数字为正数,则返回1;如果数字为0,则返回零(0);如果数字为负数,则返回-1。目的是确保MROUND函数的两个参数符号相同,避免返回错误值。

利用上述原理,可以将数值舍入至0.5单位。

E4单元格公式为:=ROUND(B4*2,0)/2

F4单元格公式为:=MROUND(B4,SIGN(B4)*0.5)

四舍六入五成双

常规的四舍五入直接进位,从统计学的角度来看会偏向大数,误差积累而产生系统误差。而四舍六入五成双的误差均值趋向于零。因此是一种比较科学的计数保留法,是较为常用的数字修约规则。

四舍六入五成双,具体讲就是保留数字后一位小于等于4时舍去,大于等于6时进位,等于5且后面有非零数字时进位,等于5且后面没有非零数字时分两种情况:保留数字为偶数时舍去,保留数字为奇数时进位。

示例:利用取舍函数解决四舍六入五成双问题

对B列的数值根据E3单元格指定的位数按四舍六入五成双法则进行修约计算。

C3单元格修约的通用公式:=ROUND(B3,E$3)-(MOD(B3*10^(E$3+1),20)=5)*10^(-E$3)

对于保留位数字为偶数、保留位后一位为5且后面无非零数字的情况,四舍五入法会进位,而四舍六入五成双的方法则不需要进位。因此公式先将数值按四舍五入法则修约,然后针对上述情况减去10^(-E$3),即可完成四舍六入五成双的修约。