Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

【access小品】测量数据修约

时 间:2010-07-04 00:00:00
作 者:todaynew   ID:10802  城市:武汉
摘 要:测量数据修约
正 文:

版友1978贵阳排长问题:根据测量方面的资料规定:数据处理后修约遵循的规则是四舍六入五看奇偶,即当要修约的数大于5,不管其前面的数是否为奇偶,均进1,当要修约的数小于5,不管其头面的数是否为奇偶,均舍去(这与数学上常归的四舍五入规定一致);当要修约的数等于5时,且其后没有数据,则其前面的数为偶,则舍去,其前面的数为奇数,则进1;当要修约的数等于5时,且其后有不为0的数据,不管其前面是否是奇偶数,均要进1;如果要保存的位数不够,修约后的数据用0补上。

------------------------------------------------------------------------------------

解法:
Function rdVal(val As Double, dec As Long) As Double
Dim num As Long
Dim n As Long
num = Int(val * 10 ^ (dec + 1)) - Int(val * 10 ^ dec) * 10
If num < 5 or num > 5 Then
    rdVal = Round(val, dec)
Else
    If val * 10 ^ (dec + 1) - Int(val * 10 ^ (dec + 1)) < 1 / 10 ^ 6 Then
        n = Int(val * 10 ^ dec) - Int(val * 10 ^ (dec - 1)) * 10
        If n Mod 2 = 0 Then
            rdVal = Int(val * 10 ^ dec) / (10 ^ dec)
        Else
            rdVal = (Int(val * 10 ^ dec) + 1) / (10 ^ dec)
        End If
    Else
        rdVal = Round(val, dec)
    End If
End If
End Function

小数保留位补零问题为格式化输出问题用format解决,在此不论。

点击下载此附件

 



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助