设为首页 - 加入收藏 - 网站地图 - RSS订阅 村姑网-www.cunguer.com
当前位置:首页 > 数据库 > access > 正文

关于access四舍五入函数round()不准确的解决方法

时间:2015-12-05 19:21:06 来源:村姑网 作者:喜欢安静 阅读:194
导读:在access数据库中使用round函数进行四舍五入的时候,如果你注意观察的话,你会发现有时候四舍五入的结果并不是我们想要的,比如:我们要将数字2.45保留小数点后1位,按照我们的想法结果肯定是2.5,然后如果你用round(2.45,1)得出的结果却是2.4。这是为什么呢...
    在access数据库中使用round函数进行四舍五入的时候,如果你注意观察的话,你会发现有时候四舍五入的结果并不是我们想要的,比如:我们要将数字2.45保留小数点后1位,按照我们的想法结果肯定是2.5,然后如果你用round(2.45,1)得出的结果却是2.4。这是为什么呢?这是因为round函数使用的是比较科学的技术保留法即四舍六入,当被操作位为5时,分2种情况:1、如果该位后面为非0,则会进一位;2、如果该位后面的数为0或该位就是最后一位的话,就要看该位前面的数,如果前面一位为奇数,就进1,如果前面为偶数就直接舍去不进位。虽然round函数这样进行四舍五入是比较科学的,但是不符合我们通常对四舍五入的理解,下面介绍2种方法来解决该为题。

1、被操作为+5法:此方法顾名思义就是在被操作的那一位加上5,然后在使用round函数进行四舍五入。如:round(2.45+0.05,1),这样结果就是我们想要的2.45了。
2、自己写一个四舍五入函数:是不使用round函数进行四舍五入,而自己去写一个这样的函数,下面给出一个示例:
Public Function RoundToLarger(dblInput As Double, intDecimals As Integer) As Double
    Dim strFormatString As String
    If dblInput <> 0 Then
        strFormatString = "#." & String(intDecimals, "#")
        RoundToLarger = Format(dblInput, strFormatString)
    Else
        RoundToLarger = 0
    End If    
End Function

在我们需要对一个数进行四舍五入操作时使用上面的这个函数RoundToLarger(),使用发发和round一样,如我们使用该函数对数2.45进行操作,保留小数点后1位,应该这样写:RoundToLarger(2.45,1),得到的结果就是2.5了。
 

《关于access四舍五入函数round()不准确的解决方法》地址:http://www.cunguer.com/article/190.html,本文来自村姑网,您身边的IT专家 www.cunguer.com,转载请注明出处,您的支持是我们创作的源泉~!

推荐内容