sql-server-2005 – SQL Server:使用数字文字计算
我用浮点计算做了一些测试,以最小化精度损失.我偶然发现我想在这里展示的一个现象,希望得到一个解释.
当我写 print 1.0 / (1.0 / 60.0) 结果是 60.0024000960 当我写相同的公式并做明确的转换为浮动 print cast(1.0 as float) / (cast(1.0 as float) / cast(60.0 as float)) 结果是 60 到目前为止,我认为具有小数位的数字文字会被自动处理为具有适当精度的浮点值.铸造到真实显示与铸造浮动相同的结果. >有没有关于SQL Server如何评估数字文字的文档? 解决方法SQL Server使用尽可能小的数据类型.运行此脚本时 SELECT SQL_VARIANT_PROPERTY(1.0,'BaseType') SELECT SQL_VARIANT_PROPERTY(1.0,'Precision') SELECT SQL_VARIANT_PROPERTY(1.0,'Scale') SELECT SQL_VARIANT_PROPERTY(1.0,'TotalBytes') 你会看到SQL Server隐式地使用了一个NUMERIC(2,1)数据类型. 编辑 取自SQL Server联机丛书Data Type Conversion
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql – 更新Access中的多值字段
- sql-server-2008 – 将选择结果写入csv文件
- sql – 如何在oracle中的多个select中避免使用相同的子查询
- sql-server-2008 – 流畅的NHibernate SQL Server 2008 DAT
- sql-server-2005 – 在一个TSQL语句中检查值是NULL还是小于
- sqlserver时间函数获取本月最后一天
- SQLserver运维必备:权限管理、备份、复制
- 数据库 – 关于ORA 21000
- SQL SERVER几个扩展存储过程使用方法
- sql-server – 模仿group_concat()与GROUP BY结合使用