SQL中的除法和乘法精度

时间:2019-01-25 17:28:43

标签: sql-server

在编写查询时遇到了以下问题,不确定为什么会发生 请找到以下示例

SELECT 21000.000000/22000.000000 * 22000.000000

sql引擎结果为20999.999999999999990000000

但是,如果您通过计算器执行相同操作,我们将获得21000。为什么会这样?以及如何获得四舍五入的计算器结果

1 个答案:

答案 0 :(得分:0)

您可以使用:

SELECT CAST(21000.000000/22000.000000 * 22000.000000 AS NUMERIC)

SELECT CAST(21000.000000/22000.000000 * 22000.000000 AS FLOAT)