SQL计算的奇怪现象,谁能帮我分析一下原因?
下面语句是从mytable取出两列数T和Q,并求它们积S:
select T ,Q ,(T*Q) as S from mytable
结果是:
T Q S
.479700 58.0 27.822600000000001
.644100 1020.0 656.98199999999997
但我执行下面的语句结果却与上面的不一样:
select 0.479700 as T ,58.0 as Q ,(0.479700 *58.0) as S
结果是:
T Q S
.479700 58.0 27.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,而你数据表中的类型不是这样,所以结果不一样