计算两个数的最大值和精度

问题描述 投票:0回答:1

我有以下操作:

SELECT 9 / 2;

结果是4而不是4.5。我将代码修改为:

DECLARE @p1 AS INT = 9, @p2 AS INT = 2;
SELECT CAST(@p1 AS NUMERIC(12, 2)) / CAST(@p2 AS NUMERIC(12, 2));

新结果是:

4.500000000000000

为什么我的结果中会有额外的0?

sql sql-server tsql
1个回答
1
投票

用于确定计算结果的精度和小数位数的规则可以是在Precision, scale, and Length (Transact-SQL)中找到。

这里的操作是除法。适用公式计算此处的精度为p1-s1 + s2 + max(6,s1 + p2 + 1),应用于我们的输入时结果为27。比例的公式为max(6,s1 + p2 + 1),在这种情况下为15。

© www.soinside.com 2019 - 2024. All rights reserved.