sql-server-2017 - SQL 2017 使用“FLOOR”函数的十进制数
问题描述
我一直在用不同的数字计算不同的整数百分比,但每次我得到地板四舍五入的数字。选择 13*100/60 给我 21,实际数字是 21.66,使用舍入函数应该给我们 22,但对于所有不同的十进制数,它只能给我 21。
我正在使用 SQL 2017。请帮助
解决方案
这是因为您除以int
s 而不是浮点数。 整数除法返回一个整数。
请尝试以下操作(注意.0
60 末尾的 ):
SELECT 13 * 100 / 60.0
将其中一个组件设为浮点数将自动将结果输出为浮点数。
输出:
21.666666
顺便说一句,如果您正在使用变量并且其中一个是 a FLOAT
,它将自动产生您期望的输出:
DECLARE @A FLOAT
DECLARE @B INT
DECLARE @C INT
SET @A = 13
SET @B = 100
SET @C = 60
SELECT @A * @B / @C
输出:
21.6666666666667