四舍六入公式及解释_第1页
四舍六入公式及解释_第2页
四舍六入公式及解释_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.在 excel中实现四舍六入五成双修约的几种方法及问题实验室信息化与自动化2019-02-19数值修约规则是指在进行具体的数字运算前或计算出结果后, 通过省略原数值的最后若干位数字,调整保留的末位数字, 使最后所得到的值最接近原数值的过程。指导数字修约的具体规则被称为数值修约规则。进行数值修约时应首先确定“修约间隔 ”(修约值的最小数值单位) 和“进舍规则 ”。一经确定, 修约值即为 “修约间隔 ”的整数倍。然后指定表达方式, 即选择根据 “修约间隔 ”保留到指定位数。最后我们需要注意的是应该一步到位修约,而不允许连续修约。目前广泛使用的数值修约规则主要有四舍五入和四舍六入五成双。四舍五入往往是人们习惯采用的一种数值修约规则,其具体使用方法是: 在需要保留数字的位次后一位,逢四及以下就舍,逢五及以上就进。excel这款广泛使用的软件在处理数据时默认采用的就是四舍五入修约规则。当然四舍五入修约规则,逢五就进,必定会造成结果的系统性偏高,误差偏大。 为了避免这样的状况出现, 尽量减小因修约而产生的误差,在医药工业等科技领域中,测定和计算各种数值时就需要用到更为科学的修约规则。中国药典 2015 年版四部凡例中明确说明“试验结果在运算过程中,可比规定的有效数字多保留一位, 而后根据有效数字的修约规则进舍至规定有效位。计算所得的最后数值或测定读数值均可按修约规则进舍至规定的有效位,取此数值与标准中规定的限度数值比较,以判断是否符合规定的限度。”这里的修约规则遵循中国国家标准文件gb/t 81702008数值修约规则与极限数值的表示和判定,即四舍六入五成双。;.四舍六入五成双修约规则与四舍五入修约规则有些许差异,当被修约的数字小于或等于四时,就直接舍去;当被修约的数字大于或等于六时,则向前进一位;当 被修约的数字等于五时, 需要看五前面的数字, 如果是偶数就将五舍去, 如果是奇数则进一位,即修约后末尾数都为偶数, 而当五的后面还有不为零的任何数时, 则无论五的前面是奇数还是偶数,均应进位。 由此可见, 四舍六入五成双与四舍五入只是在被修约的数字等于五,且其前面是偶数时修约方式不一致,在其它情况下修约方式均完全一致。所以当 excel这款通用软件应用于医药工业中时,其自身的四舍五入修约规则与中国药典中所规定的四舍六入五成双修约规则有所出入,不能完全符合中国药典的要求。那么制药企业如何让excel在日常使用中实现四舍六入五成双修约规则呢?我们知道在 excel中可以运用 round函数按指定的位数对数值进行四舍五入, rounddown函数按指定的位数向下舍入数字,roundup函数按指定的位数向上舍入数字。因此可以通过将其与if 等函数进行嵌套实现四舍六入五成双的函数算法,一个较为简洁的公式是: =if(mod(abs(x*power(10,y),2)=0.5,rounddown(x,y),round(x。,y其) 中,x 为待修约的原始数值; y 为保留位数,可以为正值、零和负值,如+1 表示进位到 0.1, -2 表示进位到 100 位, 0 表示进位到整数位。下面进行解释, power( 10,y)函数表示进行 10 的 y次方乘幂运算, abs函数返回给定数值(乘幂运算结果)的绝对值,mod 函数返回两数(上述绝对值与2)相除的余数,如果余数是0.5(说明被修约数值的尾数等于五,且其前面的数是偶数)则返回rounddown(x,y,) 即将待修约数值x 按 y保留位数向下舍入;如果余数不是 0.5 则返回 round(x,y,)即将待修约数值x 按 y 保留位数进行四舍五入。以一组实际数据为例,需要计算样品两次 ph 值测定结果的平均值,保留两位小数,直接运用 average函数即可, excel默认的四舍五入修约规则得到的结果如下图所示:而套用上述四舍六入五成双函数公式,以e3 单元格为例,将 x 替换为 average( c3:d3),将 y 替换为 2,其它单元格以此类推,得到四舍六入五成双修约结果如下图所示:我们发现两张图中e4 单元格计算结果不一样,因为5.56 和 5.57 的平均值 5.565取两位小数如按四舍五入修约得5.57,而依四舍六入五成双修约得5.56。当然我们也发现计算公式大为增长了, 这还只是一个求平均值的简单计算, 如果是其它更为复杂的计算, 上述公式中的 x 还需要进行更多的嵌套。 那么除函数方法外,还有没有其它更加简洁的方法实现四舍六入五成双修约呢?答案是肯定有的,一种常见的利用vba编写自定义函数的方式: function tranvalue(rng as double, number as integer) as double tranvalue = round(rng, number)end function函数编写完,就可以在 excel工作表中引用 tranvalue(x,y)该函数。其中, x 为待修约的原始数值; y为保留位数。输入一组数据,以e3 单元格为例, x为 averag(e以此类推,得到四舍六入五成双修约结果如下图所示:c3:d3),y为 2,其它单元格仔细观察, e3单元格计算结果0.55 呢?但 e5 单元格计算结果呢?0.545 按四舍六入五成双修约应为0.54,为什么是0.565 修约为 0.56 又是正确的,这又是什么原因不难看出, excel中这种常见的运用宏命令实现四舍六入五成双修约的方法是存在缺陷的。因为计算机是基于二进制的,我们需要在代码中增加一个cdec转换函数,将双精度浮点型数据转换为十进制型,修改后的vba代码如下图所示:这样在输入同样的数据后,四舍六入五成双修约结果才完全正确,如下图所示:小编此番讲解希望对制药同仁们有所启示与帮助,毕竟数据修约不当会影响到产品质量数据与极限数值的判定。利用 excel能为提高工作效率带来立竿见影的效果,投入成本低,适应性强。实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论