2014-01-05 68 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值。相反,你應該無論是

  • 值被「足夠接近」被認爲是平等的,

或檢查標準偏差的具體情況

  • 值是足夠大於(或小於)被認爲重要(或不顯着)的平均值的特定部分。
相關問題