基于labview的数值修约程序设计方法探讨
2021-07-04王凌杰欧贞婷钱沈廉
王凌杰 欧贞婷 钱沈廉
摘 要: 在日常計量工作当中,测量数据需要人为进行数值修约,这样不仅费时而且容易出错。本文依据GB/T 8170-2008《数值修约规则与极限数值的表示和判定》介绍了在数值修约规则和检测数据保留小数位数的方法,以及利用LabVIEW平台设计实现检测数据小数位数保留和修约的程序。对从事计量检测工程技术人员和程序软件设计开发者具有一定的参考价值。
关键词:保留小数;LabVIEW ;数值修约
1引言
在日常计量工作中,测量结果往往需要人为进行数值修约,鉴于目前部分计量标准设备基于Labview实现自动检测校准,所以采用Labview进行数值修约程序的编写,实现测量结果的自动数值修约。
2数值修约规则
数值修约是指通过省略拟修约值得若干位数字,调整保留的有效位数字,使最后得到的数值最接近于原数值的过程[1]。目前数值修约的方法均参照GB/T 8170-2008《数值修约规则与极限数值的表示和判定》。该标准规定了确定修约间隔的规则、数值修约的进舍规则、不允许连续修约的规则、0.5单位修约和0.2单位修约的规则[2]。
2.1确定修约间隔的规则
修约间隔是指被修约数的最小数值单位,当修约间隔数值确定,被修约数为修约间隔的整数倍,即通过修约间隔可得到拟保留位数。
例:如指定修约间隔为0.1,修约值应在0.1的整数倍中选取,相当于将数值修约到一位小数。
2.2数值修约的进舍规则
数值修约的进舍规则可概括为“四舍六入,逢五凑偶”,具体是将拟修约数按照拟保留位数划分为拟保留数和拟舍弃数两部分,
若拟舍弃数为零,则拟修约数等于拟保留数。若拟舍弃数的首位数字大于5,则拟修约数即等于拟保留数加1。若拟舍弃数的首位数字小于5,则拟修约数等于拟保留数加1。若拟舍弃数的首位数字等于5,且其后有非0数字时,则拟修约数等于拟保留数加1。若拟舍弃数的首位数字等于5,且其后无数字或为0时,拟保留数最后一位数为奇数,则拟修约数等于拟保留数加1,拟保留数最后一位数为偶数,则拟修约数等于拟保留数。
2.3不允许连续修约的规则
不允许连续修约的规则是指在给定修约间隔,拟修约数只能按照给定修约间隔进行一次修约,而不能多次修约再得到结果。
在实际工作中,测试数据往往在不同部门之间流转,拟修约数通常按照指定修约保留位数多一位或更多位进行报出,为了避免多次修约,应按照如下规则进行:
(1)若报出数值无需数值修约,最右边的非0数字等于5,则应在数值右上角加“+”或“-”或不加,分别代表原数值舍弃,进位,不变。
(2)若报出数值需要数值修约,拟舍弃位最左边的数字等于5,且其后无其他有效数字,数值右上角有“+”表示需要进位,数值右上角有“-”表示需要进位表示需要舍弃。
2.4 0.5单位修约和0.2单位修约的规则
0.5单位修约和0.2单位修约是指将拟修约数分别乘以2和乘以5,然后按照2.2小节中的数值修约的进舍规则进行数值修约,再将所得数值分别除以2和除以5。
例1:将下列数字修约到“个”数位的0.5单位修约。
例2:将下列数字修约到“个”数位的0.2单位修约。
3 数值修约程序编写
由于0.5单位修约和0.2单位修约转换成1单位修约的过程较为简单,故在程序中未加入此功能。根据用户键入的“拟修约数”和“保留小数位”将拟修约数的小数点移位至拟保留小数位的后面[3-4],再根据小数点进行划分,划分为拟保留数位和拟舍弃数位,然后对拟舍弃数位进行“≠0”、“=5”、“=0”、“为偶数”等条件的判断,来确定进舍。最后将小数点往前移位得到最终修约值。
4 总结:
经验算程序可实现测量数据的自动数值修约,由于labview程序通俗易懂且可移植性好。读者可将该程序封装成子VI,直接应于其他程序中。能够有效地提高工作效率和数据的准确率。
参考文献:
[1]GB/T 8170-2008.数值修约规则与极限数值的表示和判定[s].
[2]张健. 数值修约规则的理解与应用[J]. 标准科学, 2018(10):3.
[3]陈兴建, 李送云. 利用LabVIEW程序实现检测结果保留小数位数和数据修约的设计[J]. 计量与测试技术, 2017, 44(1):2.
[4]王建雷, 栾海峰. 基于LabVIEW的数据修约程序探究[J]. 中国计量, 2017(4):2.