SQL Server中浮點類型數據四捨五入問題

在此次報表中,發現報表計算的結果同客戶原始報表的數據存在些差異,因對方對數據的精度要求較嚴格,所以不趕馬虎,經多次對比,發現原始報表計算使用4位精度,而現報價計算採用float數據類型。15位精度,在結果上產生了部分差異,後經商量,決定同客戶原始系統一致,採用4位精度計算,在SQL Server中,對float數據類型的四捨五入可以採用round()函數,由於結果是採用計算表達式,結果中產生了無限循環小數,直接使用round()函數並不能進行四捨五入操作,需先進行數據類型的轉換,將float類型的結果先行轉換爲numeric數據類型,再進行round()四捨五入操作,才能得到正確結果。看來在SQL Server中採用float數據類型時得再多層考慮

select gld,round(convert(numeric(6,3),ejgyjfbz),2),round(convert(numeric(6,3),sjgyjfbz),2) from gld




http://www.cnblogs.com/Riancy/archive/2007/08/26/870664.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章