当前位置: 代码迷 >> Sql Server >> sql server 乘法 丢失精度有关问题
  详细解决方案

sql server 乘法 丢失精度有关问题

热度:456   发布时间:2016-04-24 09:27:17.0
sql server 乘法 丢失精度问题
现在有一张表tba(pric, nav ,factor)

select pric, nav ,factor, pric*factor  ---908.880050
from tba 

这种在 表查询里面乘法 和 单独拿出来乘结果是不一样的。


--- 908.8800495726000000000
SELECT 1004.3600000000 *0.904934535

一个是 908.880050  一个是 908.8800495726000000000,, 怎么才能保证不丢失精度,即使用 ROUND(,10) 还是没有用。

------解决思路----------------------
用decimal或者numeric来cast每一列的类型及计算后的最终类型,说白了就是把类型统一,如果你的列本来是float型的话,数据存储是不精确的
------解决思路----------------------
你看看,应该是你表的数据类型定义的问题吧。。。
  相关解决方案