读书人

SQL计算的奇怪现象哪位高手能帮小弟

发布时间: 2012-01-19 00:22:28 作者: rapoo

SQL计算的奇怪现象,谁能帮我分析一下原因?
下面语句是从mytable取出两列数T和Q,并求它们积S:
select T ,Q ,(T*Q) as S from mytable

结果是:
T Q S
.479700 58.027.822600000000001
.644100 1020.0656.98199999999997


但我执行下面的语句结果却与上面的不一样:
select 0.479700 as T ,58.0 as Q ,(0.479700 *58.0) as S

结果是:
T Q S
.479700 58.027.8226000


select 0.644100 as T ,1020.0 as Q ,(0.644100*1020.0) as S
结果是:

T Q S
.644100 1020.0 656.9820000


为什么相同的数相乘,结果会不一样呢?

[解决办法]
没定义类型的小数会默认为float,而你数据表中的类型不是这样,所以结果不一样

读书人网 >SQL Server

热点推荐