下面是我的sql表中的列值。当我使用桌面计算器添加它们时,我得到的总和为0
但是在sql中,当我获取Item_Quantity的总和时,我得到一个奇怪的值,如下所示
此列的数据类型为float。我可以请一点帮忙吗?感谢。
答案 0 :(得分:3)
不确定为什么你说使用DECIMAL(18,1)
无效
这是您的示例数据
DECLARE @t TABLE ( Item_Quanity FLOAT)
INSERT INTO @t
(
Item_Quanity
)
VALUES
(12.8) ,(-6.8) ,(1.4) ,(0.2) ,(3.4) ,(-2.8), (12) ,(-3.6) ,(-16.6)
这是您的查询
SELECT SUM(Item_Quanity) FROM @t
给出了这个结果
(No column name)
-3.5527136788005E-15
以下是使用CAST
SELECT SUM(CAST(Item_Quanity AS DECIMAL(18,1))) FROM @t
给出了这个结果
(No column name)
0.0
现在将数据类型从FLOAT
更改为`DECIMAL(18,1)
DECLARE @t1 TABLE ( Item_Quanity DECIMAL(18,1))
INSERT INTO @t1
(
Item_Quanity
)
VALUES
(12.8) ,(-6.8) ,(1.4) ,(0.2) ,(3.4) ,(-2.8), (12) ,(-3.6) ,(-16.6)
SELECT SUM(Item_Quanity)
FROM @t1
返回
(No column name)
0.0