【问题标题】:Why does dividing 110 / 100 gives me the wrong answer in SQL?为什么在 SQL 中除以 110 / 100 会给我错误的答案?
【发布时间】: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。为什么?

【问题讨论】:

标签: sql precision


【解决方案1】:

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

set @percent = 110 / 100.00

...或...

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

【讨论】:

  • 谢谢,这就是问题所在。我需要将 100 转换为十进制。
猜你喜欢
  • 2016-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-01
相关资源
最近更新 更多