当前位置: 移动技术网 > IT编程>数据库>MSSQL > 浅谈sqlserver下float的不确定性

浅谈sqlserver下float的不确定性

2017年11月02日  | 移动技术网IT编程  | 我要评论

战争前线乌云辅助,ailete武汉,ac米兰队

很多时候,大家都知道,浮点型这个东西,本身存储就是一个不确定的数值,你永远无法知道,它是 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 100

select sum(va) from #t
select sum(va) from #t1

----------------------
60.0000000000001
(1 行受影响)

---------------------------------------
60.000000000
(1 行受影响)

总结

以上就是本文关于浅谈sqlserver下float的不确定性的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅本站:简述redis和mysql的区别oracle sql语句优化技术要点解析mysql子查询和嵌套查询优化实例解析等,有什么问题可以随时留言,小编会及时回复大家。感谢各位对移动技术网的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网