首页 > 解决方案 > SQL 2017 使用“FLOOR”函数的十进制数

问题描述

我一直在用不同的数字计算不同的整数百分比,但每次我得到地板四舍五入的数字。选择 13*100/60 给我 21,实际数字是 21.66,使用舍入函数应该给我们 22,但对于所有不同的十进制数,它只能给我 21。

我正在使用 SQL 2017。请帮助

标签: sql-server-2017

解决方案


这是因为您除以ints 而不是浮点数。 整数除法返回一个整数

请尝试以下操作(注意.060 末尾的 ):

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

推荐阅读