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
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
