加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 行业资讯

Excel函数四舍六入、奇进偶舍详解

时间:2024-06-14 22:44:07  来源:  作者:

  在之前的文章里介绍了用EXCEL实现四舍六入、奇进偶舍的三个方法,如果有不知道的小伙伴,可以翻看前面的文章。之前的文章主要对保留一位小数点的情况做了介绍,这里再对其他的情况做一下解析。q3C检测VBA

  首先说一下为什么要四舍六入、奇进偶舍,这样的修约方法本质上是向偶数舍入。向偶数舍入初看上去好像是个相当随意的目标——有什么理由偏向取偶数呢?为什么不始终把位于两个可表示的值中间的值都向上舍入呢?使用这种方法的一个问题就是很容易假想到这样的情景:这种方法舍入一组数值,会在计算这些值的平均数中引人统计偏差。我们采用这种方式舍入得到的一组数的平均值将比这些数本身的平均值略高一些。相反,如果我们总是把两个可表示值中间的数字向下舍入,那么舍入后的一组数的平均值将比这些数本身的平均值略低一些。向偶数舍入在大多数现实情况中避免了这种统计偏差。q3C检测VBA

  下面分几种情况举例说明,如下图:q3C检测VBA

 q3C检测VBA

  前面的文章提到了三种函数公式,个人认为前面提到的三种方法中前两种都可能出现因Excel浮点计算误差导致公式结果出错,而第三种方法经试用,基本不会出现这样的问题,所以图中的函数公式都采用的第三种方法。下面分几种情况说明。q3C检测VBA

  一、常见的一般情况q3C检测VBA

  图中整数情况E2单元格的函数公式:=ROUND(((B2+C2)/2),0)-(MOD(INT(ROUND((B2+C2)/2,1)*10),20)=5)q3C检测VBA

  公式解析,先将平均值四舍五入,如果小数点后面没有出现5,四舍五入没有问题,如果有,后面的公式就起到作用了。q3C检测VBA

  (MOD(INT(ROUND((B2+C2)/2,1)*10),20)=5)是用来判断真假的,将平均值结果乘以10,再除以20,余数是5就就证明5前面是偶数,就返回TURE(真),否者返回FALSE(假),excel里面TRUE=1,FALSE=0.为假时后面(MOD(INT(ROUND((A1+A2)/2,2)*100),20)=5)等于1,否则等于0。前面平均值等于2.5,乘以10等于25,用MOD函数求余数,余数等于5,返回TURE,后面公式的值就等于1,前面2.5四舍五入到整数等于3,3-1=2.q3C检测VBA

  1位小数点的公式:=ROUND(((B3+C3)/2),1)-(MOD(INT(ROUND((B3+C3)/2,2)*100),20)=5)/10q3C检测VBA

  2位小数点的公式:=ROUND(((B4+C4)/2),2)-(MOD(INT(ROUND((B4+C4)/2,3)*1000),20)=5)/100q3C检测VBA

  3位小数点的公式:=ROUND(((B5+C5)/2),3)-(MOD(INT(ROUND((B5+C5)/2,4)*10000),20)=5)/1000q3C检测VBA

  三个公式的不同在于q3C检测VBA

  1、第一个ROUND函数保留的小数点位数不同,按实际需要保留的小数点位数保留。q3C检测VBA

  2、第二个ROUND函数保留的小数点位数不同,比实际需要保留的小数点位数多保留一位。q3C检测VBA

  3、括号中乘以的数值不同,分别是10、100、1000、10000.这里的作用是将第二个ROUND函数得到的刚好数值变成一个没有0整数。q3C检测VBA

  4、括号中除以的数值不同(同上),作用是把1变成0.1、0.01、0.001减去。q3C检测VBA

  二、以2为间隔修约的情况q3C检测VBA

  以图中12、14为例,依照GB-T 8170-2008《数值修约规则与极限数值的表示和判定》的方法,12、14的平均值等于13,13×5=65,65修约等于60,再除以5等于12。公式是这样的:q3C检测VBA

  =MROUND((B6+C6)/2,2)-(MOD(INT(B6+C6)/2*5,20)=5)*2q3C检测VBA

  前面用MROUND函数直接修约到2,后面将平均值乘以5,跟前面一样判断,上面的平均值等于13,后面的公式返回TURE,等于1×2=2,前面MROUND函数也用的四舍五入的规则,13修约成了14,14-2=12。q3C检测VBA

  三、以5为间隔修约的情况q3C检测VBA

  以图中180、185为例,依照GB-T 8170-2008《数值修约规则与极限数值的表示和判定》的方法,180、185的平均值等于182.5,182.5×2=365,365修约等于360,再除以2等于180。公式是这样的:q3C检测VBA

  =MROUND((B7+C7)/2,5)-(MOD(INT(B7+C7),20)=5)*5q3C检测VBA

  前面用MROUND函数直接修约到5,后面公式中数值直接相加等于365,用MOD函数求余数,判断后返回TURE,结果等于1×5=5,前面MROUND函数也用的四舍五入的规则,182.5修约成了185,185-5=180。q3C检测VBA

  四、以10为间隔修约的情况q3C检测VBA

  以图中2380、2390为例公式是这样的:q3C检测VBA

  =MROUND(((B8+C8)/2),10)-(MOD(ROUND((B8+C8)/2,0),20)=5)*10q3C检测VBA

  前面用MROUND函数直接修约到10,后面将平均值乘以5,跟前面一样判断,上面的平均值等于2385,后面的公式返回TURE,等于1×10=10,前面MROUND函数也用的四舍五入的规则,2385修约成了2390,2390-10=2380。q3C检测VBA

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
1620+套综合甲检测报告/原始记录空表
1620+套综合甲检测报
2022年最新内检送检指南 (检测项目类别--样品名称--检测项目参数--取样检测数量--完成期限)
2022年最新内检送检指
水利 空表 震动频率模拟报告
水利 空表 震动频率模
给报告批量添加签章、删除签章工具
给报告批量添加签章、
相关文章
    无相关信息
栏目更新
栏目热门