2014-01-05 30 views
2

我已经在MS Access和SQL Server中使用相同的确切数据运行StDev函数。两条数据2.32和2.32应该导致StDev为0,这是SQL Server生成的结果。 MS Acccess生成以下结果... 4.2146848510894E-08。这对我的数据库逻辑提出了严重的问题,但是我对如何解决这个问题并不感兴趣,而是如果其他人遇到类似的问题,并且如果有人知道为什么会计算出不同的结果?生成不同结果的SQL Server和MS Access Standard Deviation(StDev)函数

回答

2

StDev()函数返回值为Double,因此如果在执行比较的表达式中使用这些值,则必须考虑浮点错误。具体而言,在检查确切的相等性时(例如,myStDevValue=0),绝不应使用Double值。相反,你应该无论是

  • 值被“足够接近”被认为是平等的,

或检查标准偏差的具体情况

  • 值是足够大于(或小于)被认为重要(或不显着)的平均值的特定部分。
相关问题