案例1:
SELECT ROUND(CONVERT(FLOAT, '0.030') * CONVERT(FLOAT, '0.045'), 4)
以上查询的结果为0.013
,这是错误的。
应该提供0.014
而不是0.013
案例2:
为了克服上述情况,我尝试了以下查询:
SELECT ROUND(CONVERT(DECIMAL(37, 4), '0.030') * CONVERT(DECIMAL(37, 4), '0.045'), 4)
然后结果是0.014
,这是正确的。
但它的价值低于以下值:
SELECT ROUND(CONVERT(DECIMAL(37, 4), '0.011') * CONVERT(DECIMAL(37, 4), '0.045'), 4)
结果是0.0001
这是错误的。
它应该返回0.0000
有谁能告诉我为什么所有这些情况都在发生?
我应该使用什么来克服上述情况?