SQL Server中浮点类型数据四舍五入问题

Posted on 2007-08-26 23:52  海滨  阅读(5996)  评论(1编辑  收藏  举报
在此次报表中,发现报表计算的结果同客户原始报表的数据存在些差异,因对方对数据的精度要求较严格,所以不赶马虎,经多次对比,发现原始报表计算使用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

Copyright © 2024 海滨
Powered by .NET 8.0 on Kubernetes