为什么除以 110 / 100 在 SQL 中给了我错误的答案

  • 本文关键字:错误 答案 SQL sql precision
  • 更新时间 :
  • 英文 :

declare @percent decimal(3, 2) = null;
set @percent = 110 / 100
select @agent_fee_excl_percent

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

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

set @percent = 110 / 100.00

。或。。。

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

最新更新