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

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