【发布时间】:2018-12-19 22:52:50
【问题描述】:
declare @percent decimal(3, 2) = null;
set @percent = 110 / 100
select @agent_fee_excl_percent
这给了我 1.00 而不是 1.1。为什么?
【问题讨论】:
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))
【讨论】: