首页 > 开发 > SQL Server > 正文

浅谈sqlserver下float的不确定性

2019-10-19 21:18:43
字体:
来源:转载
供稿:网友

很多时候,大家都知道,浮点型这个东西,本身存储就是一个不确定的数值,你永远无法知道,它是 0 = 0.00000000000000123 还是 0 = 0.00000000000999这样的东西。也许一开始使用的时候没有问题,但是有时候做统计的时候,就会看出端倪

简单的举个例子,就知道统计的时候,有可能出现意外的效果,导致可能需要存储过程或者接收程序的代码左额外的取舍数位的处理,所以在此其实我是推荐使用Numeric来替代float进行一个替代使用,避免一个sum ,然后明明明细看每一条数据都是正常的2,3位小数,一汇总就变成了8,9位的样子

CREATE TABLE #T (ID INT IDENTITY,Va FLOAT)CREATE TABLE #T1 (ID INT IDENTITY,Va NUMERIC(15,9))--分开执行-------------------------------------------------INSERT INTO #T    ( Va )VALUES ( 0.60000000)INSERT INTO #T1    ( Va )VALUES ( 0.60000000)GO 100SELECT SUM(Va) FROM #TSELECT SUM(Va) FROM #T1----------------------60.0000000000001(1 行受影响)---------------------------------------60.000000000(1 行受影响)

总结

以上就是本文关于浅谈sqlserver下float的不确定性的全部内容,希望对大家有所帮助。有什么问题可以随时留言,小编会及时回复大家。感谢各位对CuoXin错新网的支持!


注:相关教程知识阅读请移步到MSSQL教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表