首页 » SQL Server小数数据类型

SQL Server小数数据类型

2017/10/30 18:15:55 862 梦影雾花

        之前在算收益的时候发现一个问题,由于编程的习惯,当数据库中需要存储小数的时候,就想当然的使用了float类型,可结果太让人意外了。数据库中存储了0.5没问题,当使用0.6的时候,得到的确是0.59999999999999998,使用1.6得到的是 1.6000000000000001,0.3得到的是0.29999999999999999。还是由于以前的的基础不牢吧,这时候才想起来老师上课说的float的特性。

        在SQL Server中,小数数值实际上只有两种数据类型:float 和 decimal。double precision 整体是数据类型,等价于 float(53),real等价于float(24),应该避免在程序中直接使用 double precision 和 real,而是用 float 代替。numeric 和 decimal是同义词。

        float是近似数值,存在精度缺失,Decimal是精确数值,不存在精度损失。当数值不允许精度丢失时,使用 decimal数据类型存储。在计算小数的除法时,SQL Server 内部隐式升级数据类型,根据小数数值的数据类型,就近向float(24) 或float(53)转换。


阅读延展
评论列表
新浪微博
微信