小数SQL Server实现两位小数的精确度(sqlserver取两位)
SQL Server实现两位小数的精确度
在实际的开发过程中,一般服务器存储的数据有可能是小数类型,但在计算的时候,许多精度丢失的情况需要解决,那么,我们该如何精确的处理小数数据,特别是在SQL Server数据库之中?
通过SQL Server 系统提供的内置函数,我们可以很轻松的实现2位小数的精确度。
具体做法是:使用round函数对实际数值四舍五入,并把上舍入数字后转换成字符串类型,使用SUBSTRING函数从字符串中获取小数位,再利用CONVERT函数将字符串转换成指定类型即可。
以数字(2.345)为例,精确实现两位小数的SQL语句如下:
SELECT CONVERT(Decimal(12,2),SUBSTRING(CONVERT(Varchar(11), ROUND(2.345,2)), 2, 5))
以上的SQL语句首先使用round函数,对源数据进行五舍六入,精确到2位小数,然后将四舍五入结果转换成字符串类型,使用substring函数从字符串中取出小数部分,最后用convert函数重新转换成Decimal类型,即可得到精确到2位小数的结果(2.34)。
此种方法适合实现以小数结尾的数据,如果是以整数结尾的数,就需要使用另外一种方法,如CAST函数来进行实现。
以整数(2)为例,精确实现两位小数的SQL语句如下:
SELECT CAST(2 AS Decimal(12,2))
以上的SQL语句使用CAST函数,将转换类型原数据转换成指定精度的Decimal类型即可,得到精确2位小数的结果(2.00)。
通过以上简单的SQL语句,我们就可以实现SQL Server数据库中2位小数精确度,无论是小数还是整数,都可以使用以上语句来实现精度准确的转换。