此查询在返回0.00时返回1.7763568394002505e-15:
SELECT st.id
, Sum(
CASE sa.Type
WHEN 4 THEN sa.quantity * (st.price - st.commission)
WHEN 5 THEN -sa.quantity * (st.price - st.commission)
ELSE 0.0 END
) Sales
FROM sales sa
JOIN stock st
ON sa.stockid = st.id
WHERE st.id = 1
GROUP BY st.id
http://sqlfiddle.com/#!5/cccd8/3
它看起来像是经典的浮点计算问题,但我该如何解决? 我已经尝试将各个列转换为REAL但它没有任何区别。
您可以使用此查询模拟结果:
SELECT 26.3 - 10.52 - 15.78 AS Result