您现在的位置是:网站首页> 编程资料编程资料
浅谈sqlserver下float的不确定性_MsSql_
2023-05-26
1427人已围观
简介 浅谈sqlserver下float的不确定性_MsSql_
很多时候,大家都知道,浮点型这个东西,本身存储就是一个不确定的数值,你永远无法知道,它是 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中cube:多维数据集实例详解_MsSql_
- sqlserver:查询锁住sql以及解锁方法_MsSql_
- mybatis collection 多条件查询的实现方法_MsSql_
- Sql中存储过程的定义、修改和删除操作_MsSql_
- sql存储过程实例--动态根据表数据复制一个表的数据到另一个表_MsSql_
- sql server建表时设置ID字段自增的简单方法_MsSql_
- PL/SQL Developer过期的两种解决方法_MsSql_
- SQL Server三种锁定模式的知识讲解_MsSql_
- SQL Server视图的讲解_MsSql_
- Sql Server的一些知识点定义总结_MsSql_
