浅谈sqlserver下float的不确定性

来源:脚本之家  责任编辑:小易  

很多时候,大家都知道,浮点型这个东西,本身存储就是一个不确定的数值,你永远无法知道,它是 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子查询和嵌套查询优化实例解析等,有什么问题可以随时留言,小编会及时回复大家。感谢各位对脚本之家的支持!

您可能感兴趣的文章:


  • 本文相关:
  • sqlserver 在事务中获得自增id的实例代码
  • sqlserver中防止并发插入重复数据的方法详解
  • sqlserver中模糊查询对于特殊字符的处理方法
  • sqlserver 高并发和大数据存储方案
  • sqlserver实现去除字符串空格
  • mysql 安装时的1045错误
  • 浅析sql server 聚焦索引对非聚集索引的影响
  • 查询sql server index上次rebuild时间的方法
  • sqlserver2000 数据库备份实例代码
  • 压缩技术给sql server备份文件瘦身
  • sqlserver 根据地图经纬度计算距离差示例
  • 未公开的sql server口令的加密函数
  • 简化sql server备份与还原到云工作原理及操作方法
  • t-sql清空表数据的两种方式示例(truncate and delete)
  • sql server存储过程的基础说明
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved