2.2 四舍五入函数
1.ROUND函数
功能:将数值四舍五入到指定的位数。
命令格式:ROUND(Number,Num_Digits)。
参数Number是要四舍五入的数字,Num_Digits是要进行四舍五入运算的位数。Num_Digits大于0时,表示取小数点后对应位数的四舍五入数值;Num_Digits等于0时,表示将数值四舍五入到最接近的整数;Num_Digits小于0时,表示对小数点左侧前几位进行四舍五入。
例如:ROUND(116.5627,2)=116.56;ROUND(112.5627,3)=116.563;ROUND(116.5627,0)=117;ROUND(116.5627,-1)=120;ROUND(112.5627,-2)=100。
2.ROUNDUP函数
功能:朝着远离零的方向将数值进行向上舍入。
命令格式:ROUNDUP(Number,Num_Digits)。
参数Number为需要向上舍入的任意实数,Num_Digits为舍入后的数值的小数位数。函数ROUNDUP和函数ROUND功能相似,不同之处在于函数ROUNDUP总是向上舍入数值(就是要舍去的首数小于4时也进数加1)。如果Num_Digits大于0,则向上舍入到指定的小数位;如果Num_Digits等于0,则向上舍入到最接近的整数;如果Num_Digits小于0,则在小数点左侧向上进行舍入。
例如:ROUNDUP(116.5627,2)=116.57;ROUNDUP(112.5627,3)=116.563;ROUNDUP(116.5627,0)=117;ROUNDUP(116.5627,-1)=120;ROUNDUP(116.5627,-2)=200。
3.ROUNDDOWN函数
功能:朝着远离零的方向将数值进行向下舍入。
命令格式:ROUNDDOWN(Number,Num_Digits)。
参数Number为需要向下舍入的任意实数,Num_Digits为舍入后的数字的小数位数。ROUNDDOWN函数和ROUND函数的功能相似,不同之处在于函数ROUNDDOWN总是将数字进行向下舍入。如果Num_Digits大于0,则向下舍入到指定的小数位;如果Num_Digits等于0,则向下舍入到最接近的整数;如果Num_Digits小于0,则在小数点左侧向下进行舍入。
例如:ROUNDDOWN(116.5627,2)=116.56;ROUNDDOWN(116.5627,3)=116.562;ROUNDDOWN(116.5627,0)=116;ROUNDDOWN(116.5627,-1)=110;ROUNDDOWN(116.5627,-2)=100。
为了更好地解释ROUND、ROUNDUP和ROUNDDOWN函数之间的区别,制作图2.1所示的工作簿。首先在单元格A3到A9内合并输入“123.456”,在单元格B3到B9内依次输入“-3”“-2”“-1”“0”“1”“2”“3”,在单元格C3、D3、E3内分别输入公式“=ROUND($A$3,B3)”“=ROUNDUP($A$3,B3)”和“=ROUNDDOWN($A$3,B3)”。然后选中单元格C3、D3、E3,把鼠标指针移动到单元格E3的右下角,当鼠标指针变为“
”符号时,按住鼠标左键向下拖拽到单元格E9即可。

图2.1 ROUND、ROUNDUP和ROUNDDOWN函数的比较
4.FLOOR函数
功能:将数值向下舍入(沿绝对值减少的方向)到最接近的整数或最接近的指定基数的倍数。
命令格式:FLOOR(Number,Significance)。
参数Number为要舍入的数值,Significance为要舍入到的倍数。如果任一参数为非数值型,则FLOOR函数返回错误值“#VALUE!”。如果Significance为0,则FLOOR函数返回错误值“#DIV/0!”。如果Number为正且Significance为负,则FLOOR函数返回“#NUM!”。如果Number为正,则数值向下舍入,并朝零调整;如果Number为负,则数值沿绝对值减小的方向向下舍入。如果Number正好是Significance的倍数,则不进行舍入。
例如:FLOOR(116.5627,2)=116;FLOOR(116.5627,3)=114;FLOOR(116.5627,0)=#DIV/0!;FLOOR(116.5627,-1)=#NUM!;FLOOR(-116.5627,-2)=-116;FLOOR(-116.5627,2)=-118。
5.CEILING函数
功能:将数值向上舍入(沿绝对值增大的方向)到最接近的整数或最接近的指定基数的倍数。
命令格式:CEILING(Number,Significance)。
参数Number为需要舍入的数值,Significance为舍入到的倍数。如果任一参数为非数值型,则CEILING返回错误值“#VALUE!”。不论参数Number的符号如何,数值都是沿绝对值增大的方向向上舍入。如果Number正好是Significance的倍数,则不进行舍入。如果Number和Significance都为负,则将数值按远离零的方向向下舍入;如果Number为负,Significance为正,则将数值按朝向零的方向向上舍入。(https://www.daowen.com)
例如:CEILING(116.5627,2)=118;CEILING(116.5627,3)=117;CEILING(116.5627,0)=0;CEILING(116.5627,-1)=#NUM!;CEILING(-116.5627,-2)=-118;CEILING(-116.5627,2)=-116。
6.EVEN函数
功能:将数值向上舍入到最接近的偶数。
命令格式:EVEN(Number)。
参数Number为需要舍入的数值。如果Number为非数值型,则返回错误值“#VALUE!”。不论参数Number的符号如何,数值都沿绝对值增大的方向向上舍入。如果Number恰好是偶数,则不进行舍入。
例如:EVEN(1.5)=2;EVEN(3)=4;EVEN(-1)=-2;EVEN(2)=2。
7.ODD函数
功能:将数值向上舍入到最接近的奇数。
命令格式:ODD(Number)。
参数Number为需要舍入的数值。如果Number为非数值型,则返回错误值“#VALUE!”。不论参数Number的符号如何,数值都沿绝对值增大的方向向上舍入。如果Number恰好是奇数,则不进行舍入。
例如:ODD(1.5)=2;ODD(3)=3;ODD(-1)=-1;ODD(-2)=3。
8.INT函数
功能:将数值向下舍入到最接近的整数。
命令格式:INT(Number)。
参数Number为需要进行向下舍入取整的实数。
例如:INT(1.5)=1;INT(-2.7)=-3;INT(1.23)=1。
9.TRUNC函数
功能:将数值的小数部分截去,返回整数。
命令格式:TRUNC(Number,[Num_Digits])。
参数Number为需要截尾取整的数值,用于指定取整精度的数值。Num_Digits是可选项,默认值为0。TRUNC函数和INT函数的相似之处在于两者都返回整数。函数TRUNC删除数值的小数部分,而INT函数根据数值小数部分的值将该数值向下舍入为最接近的整数。INT函数和TRUNC函数仅当作用于负数时才有所不同:TRUNC(-4.3)返回-4,而INT(-4.3)返回-5。
例如:TRUNC(1.5)=1;TRUNC(-2.7)=-2;TRUNC(1.23,1)=1.2。
10.FIXED函数
功能:将数值舍入到指定的小数位数,使用句点和逗号,以十进制数格式对该数进行格式设置,并以文本形式返回结果。
命令格式:FIXED(Number,Decimals,No_Commas)。
参数Number为要进行舍入并转换为文本的数值,Decimals为小数点右边的位数,如果Decimals为负数,则Number从小数点往左按相应位数四舍五入。如果省略Decimals,则使用系统区域设置来确定小数位数。No_Commas是逻辑值,如果为TRUE,则禁止在返回的文本中包含逗号;如果为FALSE或被省略,则返回的文本中和往常一样包含逗号。
例如:FIXED(1234.56,1)=1234.5;FIXED(1234.56,-1)=1230;FIXED(1234.56,-1,TRUE)=1230;FIXED(1234.56,1,FALSE)=1,234.5。