为什么在SQL中以110/100划分给我错误的答案?

时间:2018-12-19 22:52:50

标签: sql precision

declare @percent decimal(3, 2) = null;

set @percent = 110 / 100

select @agent_fee_excl_percent

这给了我1.00而不是1.1。为什么?

1 个答案:

答案 0 :(得分:4)

因为您要将整数除以整数,结果得到整数(1),然后将其分配给十进制变量(1.00)。您需要先将其中一个值转换为十进制,以便在将结果赋值为十进制之前将其分配给变量@percent,如下所示:

set @percent = 110 / 100.00

...或...

set @percent = 110 / CAST(100 AS DECIMAL(8,2))