我有一组执行一组计算的存储过程,但是在使用十进制类型时我似乎失去了精度。
我期望下面的计算为 0.0493318673793 - 而我得到的是 0.049331。我已经测试了不同的数据类型,并且我只在使用浮点数时获得了准确度(我已经阅读过应该避免)。
--Representative of SP
SELECT CAST(4000000.00 AS MONEY)/CAST(81083490.50 AS DECIMAL(34,26))
--0.049331
--Using greater decimal precision
SELECT CAST(4000000.00 AS MONEY)/CAST(81083490.50 AS DECIMAL(38,16))
--0.0493318
--Using Float
SELECT CAST(4000000.00 AS MONEY)/CAST(81083490.50 AS FLOAT)
--0.0493318673793403
花车真的那么差吗?如果是这样,我有什么选择?
探索下面的哈姆雷特笔记。为什么以下提供不同的输出?
SELECT CAST(4000000.00 AS MONEY)/CAST(81083490.50 AS DECIMAL(38,16))
--0.0493318
SELECT CAST(4000000.00 AS MONEY)/CAST(81083490.50 AS DECIMAL(38,3))
--0.04933186737934031096